系列文章目录
OpenCV教程-初识OpenCV-第一篇
前言
本文章Python环境为Anaconda 3.8。
OpenCV是什么?
OpenCV 是一个计算机视觉库,可用于图像处理等各个方面。
如何安装OpenCV?
敲黑板,很多新手都在这里栽坑。可不是pip install cv2 ,而是pip install opencv-python 。在这里建议大家使用pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ opencv-python 来安装OpenCV 。
如何导入OpenCV
敲黑板,很多新手都在这里栽坑。应该用import cv2 来导入OpenCV ,可不是import opencv-python 呀!
使用
导入图片
使用cv2.imread 函数来导入图片,返回格式为numpy.ndarray 数组, 该函数有两个参数,第一个是图片路径,第二个是导入图片的设置,具体请看下面解释。
cv2.IMREAD_COLOR
默认参数,以RGB模式读入一副彩色图片,忽略alpha通道。
cv2.IMREAD_GRAYSCALE
读入一副灰度图
cv2.IMREAD_UNCHANGED
读入一副完整图片,包括alpha通道。
解决返回NoneType的问题
可以尝试使用cv2.imdecode(np.fromfile('文件路径', dtype=np.uint8), '导入设置') 来代替imread ,出现该错误的原因主要是路径中包含中文或空格。
显示图片
请使用下列代码来显示图片。
import cv2
cv2.imshow('图像标题', 'numpy.ndarray对象 (图片)')
cv2.waitKey(0)
cv2.destroyAllWindows()
cv2.imshow 是显示图片的函数,至于为什么后面要加那两句,请看下方↓↓↓
cv2.waitKey
请注意,该代码在至少有一个HighGUI 窗口时才有用。 这行代码是让程序暂停,直到按下任意键,将会返回按下键的ASCII 码。参数是超时时间,单位为毫秒,0 为一直等待,超时返回-1 。 如果想按下指定按键才会退出,可以看如下代码↓↓↓
cv2.waitKey(0) == 27
这里的27 是按键的ASCII 码,此处的27 是ESC 按键的ASCII 码。 有些人可能会觉得这样设计很麻烦,请看下面的截图↓↓↓ 这段截图是从函数的文档里截取的,大意是:
注意:函数#waitKey和#pollKey是HighGUI中唯一可以获取和处理GUI事件的方法,因此需要定期调用其中一个以进行正常事件处理,除非HighGUI在负责事件处理的环境中使用。
cv2.destoryAllWindows
这个函数的作用是销毁所有窗口,这里我就不多说了,懂得都懂。 与它差不多的是cv2.destoryWindow ,参数是要销毁的窗口标题。
保存图片
使用函数cv2.imwrite(file,img,num)保存一个图像。第一个参数是要保存的文件名,第二个参数是要保存的图像。可选的第三个参数,它针对特定的格式:对于JPEG,其表示的是图像的质量,用0 - 100的整数表示,默认95;对于png ,第三个参数表示的是压缩级别。默认为3. 注意: cv2.IMWRITE_JPEG_QUALITY 类型为long ,必须转换成int ,参数越小图像越小,这个是有损压缩。 cv2.IMWRITE_PNG_COMPRESSION 从0 到9 压缩级别越高图像越小,这个是无损压缩。
cv2.imwrite('图片路径', 'numpy.ndarray对象 (图片)', [int(cv2.IMWRITE_JPEG_QUALITY), '图片质量 (0-100)'])
cv2.imwrite('图片路径', 'numpy.ndarray对象 (图片)', [int(cv2.IMWRITE_PNG_COMPRESSION), '压缩级别 (0-9)'])
小结
使用pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ opencv-python 来安装OpenCV 。 使用import cv2 导入OpenCV 。 感谢观看!
|