完成图像读取后,可以利用imshow函数显示图像(图3-4)。
import cv2
img=cv2.imread("lena.jpg")
cv2. imshow("lena",img)#图像的显示,也可以创建多个窗口
cv2. waitKey(0)#等待时间,0表示按任意键终止
cv2. destroyAllWindows()
图3-4 单幅图像显示
为了查看图像的大小等参数,可以使用图像shape属性显示,使用的语句如下:
img. shape
显示结果为(480,500,3)。需要注意的是,列出的数组分别代表高度、宽度与色彩通道数,这与一般生活中描述图像常采用宽度加高度的方式不同。
cv2. inshow是打开一个窗口显示,如要更方便地显示图像,还可以利用mat-plotlib绘图库将图像展示出来,一般是通过cv2.imread读出图片,然后用plt.ims-how显示图片。当有多幅图像需要显示时,可以利用add_subplot方法设置多个显示区域。
import cv2
import matplotlib. pyplot as plt(www.xing528.com)
#import numpy as np
%matplotlib inline
Image_BGR=cv2.imread('./lena.jpg')#读入图片
Image_RBG=cv2.cvtColor(Image_BGR, cv2.COLOR_BGR2RGB)#BGR转换为RGB
fig=plt.figure(figsize=(8,6))#新建figure对象
ax1=fig.add_subplot(2,2,1)#新建子图1
ax2=fig.add_subplot(2,2,2)#新建子图2
ax1. imshow(Image_BGR)
ax2. imshow(Image_RBG)
从图3-5可以看出,左右两幅图色彩不一致,这是因为利用OpenCV读取图像的数据类型为numpy.ndarray,格式为(h, w,c),其彩色图像三基色的顺序为BGR, matplotlib绘图库处理彩色图像采用的是常用的RGB三基色顺序,这样直接显示出来的效果如左边图像所示,造成了色彩失真,为正常显示,可以利用cvt-Color()进行色彩空间转换,如显示效果右图所示。
图3-5 BGR图像和RGB图像
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。