虽然python 很强大,而且也有自己的图像处理库PIL,但是相对于OpenCV 来讲,OpenCV更加强大, 可以做更多更复杂的应用,比如人脸识别等。跟很多开源软件一样OpenCV 也提供了完善的python 接口,非常便于调用,它包含了超过2500 个算法和函数,几乎任何一个能想到的成熟算法都可以通过调用OpenCV 的函数来实现,非常实用。
OpenCV的全称是:Open Source Computer Vision Library。OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。
1、图像读入:cv2.imread()
使用函数cv2.imread() 读入图像。这幅图像应该在此程序的工作路径,或者给函数提供完整路径,第二个参数是要告诉函数应该如何读取这幅图片。
• cv2.IMREAD_COLOR:读入一副彩色图像。图像的透明度会被忽略,
这是默认参数。
• cv2.IMREAD_GRAYSCALE:以灰度模式读入图像
#!/bin/python # -*- coding: utf-8 -*- import cv2 #import numpy as np # 彩色图模式加载一副彩图 img = cv2.imread('pythontab.jpg',cv2.IMREAD_COLOR)
注意:调用opencv,就算图像的路径是错的,OpenCV 也不会报错或者有warning提示。那么我们如何判断我们载入的图像是正确的呢?很简单,只需要判断print img时得到的结果是None则说明载入错误, 否则载入正确。
2、显示图像cv2.imshow()
使用函数cv2.imshow() 显示图像。窗口会自动调整为图像大小。第一个参数是窗口的名字,其次才是我们的图像。你可以创建多个窗口,只要你喜欢,但是必须给他们不同的名字。
cv2.imshow('image',img) #注意参数顺序 cv2.waitKey(0) """ cv2.waitKey() 是一个键盘绑定函数。需要指出的是它的时间尺度是毫 秒级。函数等待特定的几毫秒,看是否有键盘输入。特定的几毫秒之内,如果 按下任意键,这个函数会返回按键的ASCII 码值,程序将会继续运行。如果没 有键盘输入,返回值为-1,如果我们设置这个函数的参数为0,那它将会无限 期的等待键盘输入。它也可以被用来检测特定键是否被按下,例如按键a 是否 被按下,这个后面我们会接着讨论。 """ cv2.destroyAllWindows() """ cv2.destroyAllWindows() 可以轻易删除任何我们建立的窗口。如果 你想删除特定的窗口可以使用cv2.destroyWindow(),在括号内输入你想删 除的窗口名。 """
3、保存图像cv2.imwrite()
cv2.imwrite('lena.png',img) #很简单就可以生成一张图片