官方文档 – https://docs.opencv.org/3.4.0/dc/d2e/tutorial_py_image_display.html
cv.imread(filename[, flags])
filename:为完整图片路径,图片在工作目录下则填写图片名(图片路径错误,则返回None值)
flags:提供以下三种(用属性或者数字)
import cv2 as cv
# Load an color image in grayscale
img = cv.imread('test.jpg', 0)
cv.imshow(winname, mat)
winname:图片窗口名称
mat:图片
cv.imshow('image', img)
cv.waitKey(0)
cv.destroyAllWindows()
cv.waitKey()
是一个键盘绑定函数retval = cv.waitKey([, delay])
,参数delay<=0时无限等待,参数单位为毫秒
cv.destroyAllWindows()
关闭所有窗口
cv.destroyWindow(winname)
关闭指定窗口
cv.namedWindow(winname[, flags])
创建一个指定名字的空窗口,类似占位符,flags提供以下选择:
cv.namedWindow('image', cv.WINDOW_NORMAL)
cv.imshow('image', img)
cv.waitKey(0)
cv.destroyAllWindows()
cv.imwrite(filename, img[, params])
filename:文件名
img:保存的图片
params:特定格式,详见cv::ImwriteFlags
cv.imwrite('messigray.png', img)
灰度模式加载并展示一张彩色图片,如果按下’s’键,则保存并退出,按下ESC则仅退出
import cv2 as cv
img = cv.imread('test.jpg', 0)
cv.imshow('image', img)
k = cv.waitKey(0)
if k == 27:
cv.destroyAllWindows()
elif k == ord('s'):
cv.imwrite('messigray.png', img)
cv.destroyAllWindows()
import cv2 as cv
from matplotlib import pyplot as plt
img = cv.imread('messi5.jpg', 0)
plt.imshow(img, cmap='gray', interpolation='bicubic')
plt.xticks([]), plt.yticks([]) # 隐藏x、y轴上的刻度值
plt.show()
注意:OpenCV加载的彩色图像在BGR模式下。但是,Matplotlib显示在RGB模式下。因此,如果图像是用OpenCV读取的,那么在Matplotlib中不会正确显示彩色图像。
解决方法:
import cv2 as cv
from matplotlib import pyplot as plt
img = cv.imread('test.jpg')
b, g, r = cv.split(img)
img2 = cv.merge([r, g, b])
plt.imshow(img2)
plt.show()