OpenCV(Open Souce Computer Vision Library)是一个跨平台的计算机视觉库。OpenCV由英特尔公司发起并参与开发,可在商业和研究领域中免费使用。OpenCV可用于开发实时的图像处理及计算机视觉程序,目前已广泛应用于人机互动、人脸识别、动作识别、运动跟踪等领域。
要安装OpenCV,可在http://www.lfd.uci.edu/~gohlke/pythonlibs/找到本机Python版本对应的OpenCV文件,单击文件并下载至硬盘,然后在命令窗口中可通过命令行进行安装:(假设文件放在D盘根目录)
pip install d:/opencv_python‑3.4.4+contrib‑cp36‑cp36m‑win_amd64.whl
要在程序中使用OpenCV库,需要通过下列代码进行导入:
import cv2
导入链接库后,创建一个窗口来显示图像,语法为:
cv2.namedWindow(窗口名称[, 窗口标识])
窗口标识的值可能是如下值:
cv2.namedWindow("Image")
如果窗口不再使用,可将其关闭。关闭窗口有两种方式:第一种方式是关闭指定的窗口,例如:
cv2.destroyWindow("Image")
第二种方式是关闭所有打开的窗口,如果同时打开了多个窗口,可用此方式关闭所有窗口,语法为:
cv2.destroyAllWindows()
要在窗口中显示图像,需先读取图像文件,语法为:
图像变量 = cv2.imread(图像文件路径[, 读取标识])
图像文件路径中若只有文件名,表示图像文件与Python程序文件在同一文件夹中;图像文件的路径还可使用相对路径,例如"media\img.jpg"。
读取标识的值可以是如下值:
img = cv2.imread("media\\img.jpg", 0)
OpenCV支持绝大多数的图像格式:.bmp、.jepg、.jpg、.dib、.png、.webp、.pbm、.pgm、.ppm、.sr、.ras、.tif、.tiff等。
在窗口中显示图像的语法为:
cv2.imshow(窗口名称, 图像变量)
例如,将img图像变量显示在Image窗口中:
cv2.imshow("Image", img)
为了让用户可以观察显示的图像,通常会在图像显示后加入等待代码,知道用户按任意键或时间到的时候才继续执行程序,其语法为:
cv2.waitKey(n)
n为等待时间,单位是毫秒。若n的值为0,表示时间为无限长,及用户按任意键可继续执行程序。
用OpenCV读取图形文件,并分别以彩色及灰度模式显示(图形文件img01.jpg位于media文件夹中)。
import cv2
cv2.namedWindow("ShowImage1")
cv2.namedWindow("ShowImage2")
image1 = cv2.imread("media\\img01.jpg")
image2 = cv2.imread("media\\img01.jpg", 0)
cv2.imshow("ShowImage1", image1)
cv2.imshow("ShowImage2", image2)
cv2.waitKey(0)
cv2.destroyAllWindows()
图像经过OpenCV处理后可以进行保存,保存图像的语法为:
cv2.imwrite(存盘路径, 图像变量[, 存盘标识])
存盘标识的值可以是如下值:
例如,把img变量保存为img.jpg文件,图片品质为70:
cv2.imwrite("img.jpg", img, [int(cv2.IMWRITE_JPEG_QUALITY), 70])
先用OpenCV读取图形文件,然后以不同图片质量进行保存。
import cv2
cv2.namedWindow("ShowImage")
image = cv2.imread("media\\img01.jpg", 0)
cv2.imshow("ShowImage", image)
cv2.imwrite("media\\img01copy1.jpg", image)
cv2.imwrite("media\\img01copy2.jpg", image, [int(cv2.IMWRITE_JPEG_QUALITY), 50])
cv2.waitKey(0)
cv2.destroyWindow("ShowImage")
从文件管理器中可看到:img01.jpg是源文件,img01copy1.jpg是质量为95的图形文件,文件大小略小于原始文件;img01copy2.jpg是质量为50的图形文件,文件大小约等于源文件的五分之一。