OpenCV教程-初识OpenCV-第一篇

Posted 一只爱编程的书虫

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OpenCV教程-初识OpenCV-第一篇相关的知识,希望对你有一定的参考价值。

系列文章目录

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码,此处的27ESC按键的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_COMPRESSION09压缩级别越高图像越小,这个是无损压缩。

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
感谢观看!

以上是关于OpenCV教程-初识OpenCV-第一篇的主要内容,如果未能解决你的问题,请参考以下文章

Opencv入门-第一回-梦牵机器视觉翼,初识Opencv域(安装Opencv)

openCV第一篇

opencv安装教程

opencv安装教程

初识OpenCV-Python - 001

在 Python 多处理进程中运行较慢的 OpenCV 代码片段