这篇博客展示了如何使用OpenCV从磁盘上读取图像,在屏幕上显示它,然后等待按键关闭窗口并终止脚本。
cv2.imread()
cv2.imwrite()
cv2.imshow()cv2.imread(“imagePath”,flag)
- –imagePath 图片的路径,即使不是图片路径,读取也不报错,只是打印image会显示None
- –flag 读取图片的方式 (也可以用1,0,-1,分别代表下边的3种方式)
cv2.IMREAD_COLOR : 读取三通道 BGR 图像,忽略透明度,默认模式
cv2.IMREAD_GRAYSCALE : 读取灰度图
cv2.IMREAD_UNCHANGED : 读取四通道图(BGR + 透明度alpha通道);
#导入必要的包(命令行参数包、OpenCV绑定)
import argparse
import cv2
ap = argparse.ArgumentParser()
ap.add_argument("-i", "--image", required=True, help="Path to the image")
args = vars(ap.parse_args())
# 加载图片 参数:文件路径
image = cv2.imread(args["image"])
# 展示图片到窗口 参数1:窗口名称 参数2:我们要展示的图片
cv2.imshow("image", image)
# v2.waitKey()是键盘绑定功能。它的参数是时间(以毫秒为单位)。该函数等待任何键盘事件的指定毫秒数。如果在此期间按任意键,程序将继续。如果传递0,它将无限期地等待击键。
cv2.waitKey(0)
# 关闭所有的窗口,关闭特定的窗口可以使用 cv2.destroyWindow("windowName")
cv2.destroyAllWindows()
执行脚本:
python load_image.py --image flower.jpg
用matplot展示图片
由于读取后图片是 BGR 通道,需要稍微处理下转换为RGB
import cv2
import numpy as np
import matplotlib.pyplot as plt
img = cv2.imread('D://imageProcessing/images/flower.jpg')
b, g, r = cv2.split(img)
img2 = cv2.merge([r, g, b])
plt.subplot(121);
plt.imshow(img) # expects distorted color
plt.subplot(122);
plt.imshow(img2) # expect true color
plt.show()
cv2.imshow('bgr image', img) # expects true color
cv2.imshow('rgb image', img2) # expects distorted color
cv2.waitKey(0)
cv2.destroyAllWindows()
参考: