在前面的博客中,就已经用到了图像的绘制,
使用skimage库中的io模块
from skimage import io,data
img = data.chelsea()
io.imshow(img)
run result:
当然还可以使用其他的库:例如,PIL、opencv…(后期进行整理和总结)
from PIL import Image
pil_im = Image.open('dog.png')
#pil_im = Image.open('dog.png').convert('L') #灰度操作
pil_im.show(pil_im)
run result:
matplotlib是一个专业绘图的库,相当于matlab中的plot,可以设置多个figure,设置figure的标题,隐藏坐标尺,甚至可以使用subplot在一个figure中显示多张图片。一般我们可以这样导入matplotlib库:
import matplotlib.pyplot as plt # 绘图实际上用的是matplotlib包的pyplot模块
实例:分开并同时显示小猫图片的RGB三个通道
##############分开并同时显示cat图片的三个通道
from skimage import data
import matplotlib.pyplot as plt
img = data.chelsea()
plt.figure(num='chelsea',figsize=(8,8)) #创建一个名为chelseat的窗口,并设置大小
plt.subplot(2,2,1) #将窗口分为两行两列四个子窗口,则可显示四幅图片
plt.title('origin image') #第一幅图片标题
plt.imshow(img) #绘制第一幅图片
plt.axis('on') #
plt.subplot(2,2,2) #第二个子窗口
plt.title('R channel') #第二幅图片标题
plt.imshow(img[:,:,0],plt.cm.gray) #绘制第二幅图片,且为灰度图
plt.axis('off') #不显示坐标尺寸
plt.subplot(2,2,3) #第三个子窗口
plt.title('G channel') #第三幅图片标题
plt.imshow(img[:,:,1],plt.cm.gray) #绘制第三幅图片,且为灰度图
plt.axis('off') #不显示坐标尺寸
plt.subplot(2,2,4) #第四个子窗口
plt.title('B channel') #第四幅图片标题
plt.imshow(img[:,:,2],plt.cm.gray) #绘制第四幅图片,且为灰度图
plt.axis('off') #不显示坐标尺寸
plt.show() #显示窗口
run result:
注:除了使用matplotlib库来绘制图片,skimage还有另一个模块ImageViewer,也可以显示图片。
from skimage import data
from skimage.viewer import ImageViewer
img = data.chelsea()
viewer = ImageViewer(img)
viewer.show()
run result:
python的图像库很丰富,opencv、PIL、matplotlib、skimage都是主流工具。
参考和引用:
https://blog.csdn.net/zhuisaozhang1292/article/details/80718585
https://blog.csdn.net/denny2015/article/details/50532961
https://blog.csdn.net/qq_36941368/article/details/82998296
仅用来个人学习和分享,如若侵权,留言立删。
尊重他人知识产权,不做拿来主义者!
喜欢的可以关注我哦QAQ,
你的关注和喜欢就是我write博文的动力。