Matplotlib和skimage配合处理图像入门(只是把图像引进来了)

又是愉快码代码的一天呢!!

这篇是Py的图像处理

首先我们导入一个图,利用的是Linux下的wget命令,以及调用系统命令需要在前面加!(在此感谢wisdom_jie大佬提供的图片)

!wget  https://images2015.cnblogs.com/blog/140867/201601/140867-20160111162610585-190024450.png 

其实这里想补充一点的是,skimage 的data 里有自带的图片,可以直接导入

from skimage import io,data
img=data.moon()
io.imshow(img)

astronaut     航员图片      coffee     一杯咖啡图片   
lena          lena美女图片   camera   拿相机的人图片   
coins           硬币图片     moon    月亮图片
checkerboard   棋盘图片       horse   马图片   
page   书页图片              chelsea   小猫图片     
hubble_deep_field    星空图片   text   文字图片
clock    时钟图片   immunohistochemistry   结肠图片  

以及其实这些图片的名称,都是一个个函数!!!

我们使用一下Matplotlib,这是一个绘图工具

import matplotlib.pyplot as plt #Matplotlib 是Python中类似 MATLAB 的绘图工具
import numpy as np
from skimage import io,transform

关于最后那个skimage

scikit-image是基于scipy的一款图像处理包,它将图片作为numpy数组进行处理,正好与matlab一样,因此,我们最终选择scikit-image进行数字图像处理。

Image读出来的是PIL的类型,而skimage.io读出来的数据是numpy格式的

利用io.imread(img_dir),导入图片,我们就可以对图片进行一波操作了

Mypic = io.imread('140867-20160111162610585-190024450.png') #io.imread(img_dir),导入图片

print(type(Mypic))  #显示类型
print(Mypic.shape)  #显示尺寸
print(Mypic.shape[0])  #图片高度
print(Mypic.shape[1])  #图片宽度
print(Mypic.shape[2])  #图片通道数
print(Mypic.size)   #显示总像素个数
print(Mypic.max())  #最大像素值
print(Mypic.min())  #最小像素值
print(Mypic.mean()) #像素平均值
print(Mypic[0][0])#图像的像素值

显示图片

plt.subplot(121)#1代表行,2代表列,所以一共有2个图,1代表此时绘制第1个图。(如果没有,默认一张图片,后面的会把前面的覆盖)
plt.imshow(Mypic)#显示图片
plt.title('first')#题目
plt.axis('off')#关闭坐标不可见(如果没有,会显示坐标)

如果要显示两张图片呢?

plt.subplot(121)#1代表行,2代表列,所以一共有2个图,1代表此时绘制第1个图。
plt.imshow(Mypic)
plt.title('first')
plt.axis('off')#关闭坐标不可见


plt.subplot(122)#1代表行,2代表列,所以一共有2个图,2代表此时绘制第二个图。
plt.imshow(Mypic[:,:,0])
plt.title('second')
plt.axis('off');

先就这样吧,希望不久的将来可以慢慢慢慢入门

posted @ 2020-12-09 17:25  安之若醇  阅读(340)  评论(0)    收藏  举报
Live2D服务支持