用OpenCV-Python 完成简单的图像读取,显示

简书:https://www.jianshu.com/p/f7aeab54ded0

导入要使用的package


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显示图片


#  用matplotlib显示
plt.imshow(img)
plt.show()

用OpenCV-Python 完成简单的图像读取,显示_第1张图片
可以看到,这里显示的图像有点问题,这是因为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()

用OpenCV-Python 完成简单的图像读取,显示_第2张图片

这下就正常了。

源代码


https://github.com/jiangkang/OpenCVDemos/blob/master/start/start_img.py

你可能感兴趣的:(Python,python,图像处理,opencv)