报错 : plt.imshow()
使用plt.imshow(image, 'image')
语句时,报错如下:
原因分析 & plt.figure()语句的使用
用plt.imshow(image, 'image')
这句话主要是想实现画“image”的图并且以“image”为图像命名。因为在绘制的过程中出现了不止一个图像。
通过分析报错的结果可以发现,plt.imsho()
函数不能以此方式来命名图像。该函数认为紧随着要绘制的图像的字符,必须为Colormap,应该包含在OpenCV官方给出的Colormap类型中。
因此,只需要去掉后缀,直接画图:plt.imshow(image)
即可解决该报错。
那么,应该如何给不同的图片添加不同的名称、并且分别显示呢?
可以在plt.imshow()
语句前面增加一个函数:plt.figure()
示例如下。
示例程序
image1 = **
image2 = **
image3 = **
# 画图
plt.figure('image1')
plt.imshow(image1)
plt.figure('image2')
plt.imshow(image2)
plt.figure('image3')
plt.imshow(image3)
结果会显示三个命名分别为“image1”、“image2”、“image3”的图像。
扩展:plt.pause()
如果想在for循环中实现图像连续显示在同一个页面下,实现类似视频的效果,此时不能用plt.show()
来显示,因为该语句会暂停程序运行,除非关闭图像显示窗口。
此时可以利用plt.pause()
语句,括号中写多长时间,图像显示窗口会停顿多少秒,然后继续进行for循环的下一步。