app平台网站搭建,阿里云 win系统安装Wordpress,河北交通建设投资集团公司网站,wordpress 留言 seo no第一章#xff1a;OpenCV入门
OpenCV是一个开源的计算机视觉库#xff0c;1999年有英特尔的Gary Bradski启动。OpenCV库由C和C语言编写#xff0c;涵盖计算机视觉各个领域内的500多个函数#xff0c;可以在多个操作系统上运行。它旨在提供一个简洁而又高效的接口#xff…第一章OpenCV入门
OpenCV是一个开源的计算机视觉库1999年有英特尔的Gary Bradski启动。OpenCV库由C和C语言编写涵盖计算机视觉各个领域内的500多个函数可以在多个操作系统上运行。它旨在提供一个简洁而又高效的接口从而帮助共夺得开发人员快速的构建视觉系统。
本章主要介绍OpenCV的简单使用
图像处理的基本操作
图像处理的最基本操作包括
读取图像显示图像保存图像
1. 读取图像
在OpenCV中使用cv2.imread()函数来读取图像该函数支持各种静态图像格式。
语法为retval cv2.imread( filename[, flags] )
retval返回值读取到的图像。如果未读取到图像则返回 Nonefilename表示要读取的图像的完整路径。flags是读取标记。该标记用来控制读取文件的类型具体如下表表示。 注意表中第一列参数和第三列参数是等价的。即cv2.IMREAD_UNCHANGED -1
值含义数值cv2.IMREAD_UNCHANGED保持原格式不变-1cv2.IMREAD_GRAYSCALE将图像调整为单通道灰度图像0cv2.IMREAD_COLOR将图像调整为3通道的BGR图像。该值是默认值1cv2.IMREAD_ANYDEPTH当载入的图像深度为16位或者32位时就返回其对应深度的图像否则将其转换为8位图像2cv2.IMREAD_ANYCOLOR以任何可能的颜色格式读取图像4cv2.IMREAD_LOAD_GDAL使用gdal驱动程序加载图像8cv2.IMREAD_REDUCED_GRAYSCALE_2将图像转化为单通道灰度图像并将图像尺寸减小1/2cv2.IMREAD_REDUCED_COLOR_2将图像转换为3通道BGR彩色图像并将图像尺寸减小1/2cv2.IMREAD_REDUCED_GRAYSCALE_4将图像转化为单通道灰度图像并将图像尺寸减小1/4cv2.IMREAD_REDUCED_COLOR_4将图像转换为3通道BGR彩色图像并将图像尺寸减小1/4cv2.IMREAD_REDUCED_GRAYSCALE_8将图像转化为单通道灰度图像并将图像尺寸减小1/8cv2.IMREAD_REDUCED_COLOR_8将图像转换为3通道BGR彩色图像并将图像尺寸减小1/8cv2.IMREAD_IGNORE_ORIENTATION不以EXIF的方向为标记旋转图像
函数cv2.imread()支持读取多种不同类型的图像 例如使用cv2.imread()函数读取图像
import cv2
lena cv2.imread(sky.png)
print(lena)2. 显示图像
在OpenCV中提供了多个与显示相关的函数 namedWidow函数 用来创建指定名称的窗口 语法格式None cv2.namedWindow( winname ) 式中 winname 指的是创建窗口的名称 例如创建一个名字为lesson的窗口 CV2.namedWindow(lesson)imshow函数 用来显示图像语法格式None cv2.imshow( winname, mat ) 式中winname为窗口名称mat为要显示的图像。 例如 import cv2
lena cv2.imread(lena.bmp)
cv2.namedWindow(lesson)
cv2.imshow(lesson, lena)上述代码中首先通过cv2.imread()函数读取图像lena.bmp然后通过cv2.namedWindow()函数创建了一个名为lesson的窗口最后通过cv2.imshow()函数在lesson窗口中显示图像lena.bmp。 注意在实际使用中也可以不创建窗口直接使用函数cv2.imshow()引用一个并不存在的创空并在其中显示指定的图像如 import cv2
lena cv2.imread(lena.bmp)
cv2.imshow(demo, lena)waitKey函数 用来等待按键当用户按下键盘后该语句会被执行并返回一个值语法retval cv2.waitKey([delay]) retval表示返回值。如果没有按键被按下则返回-1如果有按键备案下则返回该按键的ASCII码delay表示等待键盘触发的时间单位是ms。当该值为负数或者0时表示无限等待。默认为0 实际使用中可以通过函数cv2.waitKey()获取按下的按键并针对不同的键做出不同的反应从而实现交互功能 import cv2
lenam cv2.imread(lena.png)
cv2.imshow(demo, lena)
key cv2.waitKey()
if key ord(A):CV2.imshow(PressA, lena)
elif key ord(B):cv2.imshow(PressB, lena)destroyWindow函数 用来释放销毁指定窗口语法None cv2.destroyWindow( winname ) winname为窗口名字 import cv2
lena cv2.imread(lena.png)
cv2.imshow(demo, lena)
cv2.waitKey()
cv2.destroyWindow(demo)destroyAllWindows函数 用来释放销毁所有窗口语法None cv2.destroyAllWindows() import cv2
lena cv2.imread(lena.png)
cv2.imshow(demo1, lena)
cv2.imshow(demo2, lena)
cv2.waitKey()
cv2.destroyAllWindows()3. 保存图像
在OpenCV中使用函数cv2.imwrite()来保存图像该函数的语法是
retval cv2.imwrite( filename , img [, params ])
参数
retval返回值。如果保存成功则返回True如果失败则返回Falsefilename要保存目标文件的完整路径。img要保存的图像params保存类型参数可选。
import cv2
lena cv2.imread(lena.png)
r cv2.imwrite(result.png, lena)OpenCV贡献库介绍
目前OpenCV库包含如下两部分
OpenCV主库即通常安装的OpenCV库该库成熟稳定有核心的OpenCV团队维护OpenCV贡献库该扩展库的名称为opencv_contrib主要有社区开发和维护其包含的视觉应用比OpenCV主库更全面。需要注意的是OpenCV贡献库中包含非OpenCV许可的部分并且包含专利保护的算法。因此使用该模块前需要特别注意。OpenCV贡献库中包含非常多的扩展模块 bioinspired生物视觉模块datasets数据集读取模块dnn深度神经网络模块face人脸识别模块matlabMATLAB接口模块stereo双目立体匹配模块text视觉文本匹配模块tracking基于视觉的目标跟踪模块ximgpro图像处理扩展模块xobjdetect增强2D目标检测模块datasets数据集读取模块dnn深度神经网络模块face人脸识别模块matlabMATLAB接口模块stereo双目立体匹配模块text视觉文本匹配模块tracking基于视觉的目标跟踪模块ximgpro图像处理扩展模块xobjdetect增强2D目标检测模块xphoto计算 摄影扩展模块