又是愉快码代码的一天呢!!
这篇是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');
先就这样吧,希望不久的将来可以慢慢慢慢入门