简书:https://www.jianshu.com/p/f7aeab54ded0
import cv2
from matplotlib import pyplot as plt
img = cv2.imread("../res/demo.jpg", cv2.IMREAD_COLOR)
# 给窗口命名
cv2.namedWindow('图片窗口名', cv2.WINDOW_NORMAL)
# 显示图片 传入两个参数,一个窗口名,一个图片数据
cv2.imshow('图片窗口名', img)
# 按键监听,0代表无限时间监听
cv2.waitKey(0)
cv2.destroyAllWindows()
当然,也可以保存图片
# 按键监听,0代表无限时间监听,如果是64位机器,可以加上0xFF
k = cv2.waitKey(0) & 0xFF
if k == ord('s'):
print('保存并退出')
# 写文件
cv2.imwrite('../res/demo_saved.jpg', img)
cv2.destroyAllWindows()
else:
print('退出')
cv2.destroyAllWindows()
# 用matplotlib显示
plt.imshow(img)
plt.show()
可以看到,这里显示的图像有点问题,这是因为OpenCV默认是BGR模式的,而Matplotlib是RGB模式的,故如果要正确显示,需要对颜色空间进行转换
# 由于OpenCV用的是BGR模式,而Matplotlib 用的是RGB模式,故在显示的时候需要注意处理
# 要不然就会出现问题
b, g, r = cv2.split(img)
dst_rgb = cv2.merge([r, g, b])
# 用matplotlib显示
plt.imshow(dst_rgb)
plt.xticks([])
plt.yticks([])
plt.show()
这下就正常了。
https://github.com/jiangkang/OpenCVDemos/blob/master/start/start_img.py