import numpy as np
import cv2 as cv
from matplotlib import pyplot as plt
1、读写图像
cv.imread()函数第一个参数为图像路径,第二个参数可以为-1,1,0,其中1为彩色图,0为灰度图,-1为alpha channel。
cv.nameWindow()函数第一个参数为生成窗口的标题,第二个参数可以为WINDOW_AUTOSIZE(自动设置)或者WINDOW_NORMAL(可手动设置)。
cv.imshow()函数第一个参数也为生成窗口的标题,第二个参数为图像的对象。
cv.waitKey()函数为键盘绑定函数,如果参数为0则等待任何键,也可以设定指定的键。
cv.destoryALLWindows()函数关闭任何窗口。cv.destoryWindow()可以关闭指定的窗口(利用参数)。
cv.imwrite()函数保存图片,第一个参数为保存的路径和名称,第二个参数为保存的图片对象。
img = cv.imread('./images/wolf.jpg',0)
#如果图像载入出错,会输入None
#print(img)
#cv.namedWindow('image', cv.WINDOW_AUTOSIZE)
cv.imshow('image', img)
cv.waitKey(0)
cv.destroyAllWindows()
#cv.imwrite('test.png',img)
键盘输入ESC键,则退出图像窗口;如果按键‘s’,另存图片。
img = cv.imread('./images/wolf.jpg',0)
cv.imshow('image', img)
k = cv.waitKey(0)
if k == 27:
cv.destroyAllWindows()
elif k == ord('s'):
cv.imwrite('./image/wolfimwrite.jpg', img)
cv.destroyAllWindows()
2、OpenCV与Matplotlib显示图片
使用matplotlib进行显示opencv读入的图像。matplotlib使用RGB显示,opencv使用BGR读入,所以可能会有误差
img = cv.imread('./images/wolf.jpg', 0)
plt.imshow(img, cmap='gray', interpolation= 'bicubic')
plt.xticks([]) #隐藏x轴的坐标
plt.yticks([])
plt.show()
体验OpenCV和Matplotlib显示图像的不同之处
img = cv.imread('./images/wolf.jpg', 1)
b, g, r = cv.split(img)
img2 = cv.merge([r, g, b])
plt.subplot(121)
plt.imshow(img)
plt.subplot(122)
plt.imshow(img2)
plt.show()
cv.imshow("bgr", img)
cv.imshow("rgb", img2)
cv.waitKey(0)
cv.destroyAllWindows()