Python OpenCV读取并显示图像

2016-06-01 Lu Huang 更多博文 » 博客 » GitHub »

Python OpenCV

原文链接 https://hlthu.github.io/opencv/2016/06/01/python-opencv-1.html
注:以下为加速网络访问所做的原文缓存,经过重新格式化,可能存在格式方面的问题,或偶有遗漏信息,请以原文为准。


Python作为一门极其易学的语言,在科学计算等领域存在较大的应用,同样,著名的OpenCV库也发布了支持Python的库,本节主不再介绍如何在Ubuntu上配置Python OpenCV,有需要的同学可以参考这里

本节将利用Python OpenCV做一个简单的测试,即

  • 打开一个图片并显示
  • 创建一个空图并显示
  • 将彩色图像转成灰度图像并显示

实现过程

引用

这里我们需要引用cv2和numpy,cv2不言而喻,而NumPy是Python语言的一个扩充程序库。支持高级大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库,这里在引用时把numpy重命名为np。

import cv2  
import numpy as np

打开图片并显示

cv2库里的函数imread()用来读取图片,imshow()可用于显示图片,此外imwrite可以用来写图片,即保存图片。这里把显示图片的窗口指定为“Image”。

img = cv2.imread("./cat.png") 
cv2.imshow("Image", img) 

创建一个空图

numpy里有函数np.zeros用来创建零值矩阵,该函数的第一个参数为矩阵大小,这里是刚才读入图片的大小,即img.shape,第二个参数为数据类型,为uint8类型。指定显示该图片的窗口为“emptyImage”。

emptyImage = np.zeros(img.shape, np.uint8)
cv2.imshow("EmptyImage", emptyImage) 

将彩色图像转成灰度图像

利用opencv自带的cvtColor可以将彩色图像转成灰度图像,这里主要是参数cv2.COLOR_BGR2GRAY进行说明的,指定显示该灰度图片的窗口为“emptyImage2”。

emptyImage2 = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) 
cv2.imshow("EmptyImage2", emptyImage2) 

等待键盘输入并关闭所有窗口

这里cv2.waitKey里的参数0表示等待输入任何按键,当用户输入任何一个按键后即调用destroyAllWindows()关闭所有图像窗口。

cv2.waitKey (0)  
cv2.destroyAllWindows() 

源代码

整个程序的源代码如下:

import cv2  
import numpy as np  

img = cv2.imread("./cat.png")  
emptyImage = np.zeros(img.shape, np.uint8)  
emptyImage2=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)   

cv2.imshow("EmptyImage", emptyImage)  
cv2.imshow("Image", img)  
cv2.imshow("EmptyImage2", emptyImage2)   

cv2.waitKey (0)  
cv2.destroyAllWindows() 

也可以参考我的GitHub上的,点击这里

运行结果

在命令行进入该源程序所在目录后,运行python main.py后即可显示结果,结果如下: 运行结果

参考

  • http://blog.csdn.net/sunny2038/article/details/9057415
  • http://www.pyimagesearch.com/2015/06/22/install-opencv-3-0-and-python-2-7-on-ubuntu/
  • https://github.com/hlthu/Python-OpenCV-Learn/tree/master/Python_OpenCV