1.imshow的用法:
函数表达式:result=plt.imshow(image,cmax)
若image设置成为gray,则cmax=plt.cm.gray
若image为彩色图像,就要注意opencv读进去的是·bgr,但是imshow显示的时候需要rgb所以需要进行改变:
import cv2
import numpy as np
import matplotlib.pyplot as plt
#进行灰度图像的显示
o=cv2.imread('D:/cc1/lenacolor.png')
o=cv2.cvtColor(o,cv2.COLOR_BGR2GRAY)
plt.subplot(121)
plt.imshow(o,cmap=plt.cm.gray)#进行灰度图像显示,图像必须是灰度的,cmap也必须是灰度的
plt.title('gray_picture')
plt.axis('off')
#进行彩色图像显示
s1=cv2.imread('D:/cc1/lenacolor.png')
b,g,r=cv2.split(s1)#opencv读取图片的颜色顺序是bgr
s1=cv2.merge([r,g,b])#进行图片三个通道的组合
plt.subplot(122)#将图片放到第二个窗口中
plt.imshow(s1)#进行图片显示 显示的时候,图片的颜色通道顺序是rgb
plt.title('color_picture')#给图片命标题,中文会出现乱码
plt.axis('off')#将坐标关闭
plt.show()
结果为
2.直方图均衡化:用于提高图片的质量:
import cv2
import numpy as np
import matplotlib.pyplot as plt
o=cv2.imread('D:/cc1/equ.bmp',cv2.IMREAD_GRAYSCALE)
s1=cv2.equalizeHist(o)#图像均衡化处理
print(o.shape)#显示图像的横像素和列像素
plt.subplot(221)
plt.imshow(o,cmap=plt.cm.gray)
plt.title('original')
plt.axis('off')
plt.subplot(222)
plt.imshow(s1,cmap=plt.cm.gray)
plt.title('equalist')
plt.axis('off')
plt.subplot(223)
plt.hist(o.ravel(),256)
plt.subplot(224)
plt.hist(s1.ravel(),256)
plt.show()
结果为:
`
3傅里叶变换:
`