01 OpenCV基础知识与基本操作

简介: 01 OpenCV基础知识与基本操作

0f2e76e62d1c4f2394fda14a44f50896.png



1 基本语法操作


1 读取图像

读取图像的如法如下


img = cv2.imread('图像地址'[,flags])


cv2暂不支持读取中文路径,所以务必确认地址中不含中文。

flags为选填项,可以设置读取图片时的处理方式:


cv2.IMREAD_UNCHANGED:-1,读入图像并保持其透明度信息。

cv2.IMREAD_GRAYSCALE:0,读入灰度图像。

cv2.IMREAD_COLOR:1,读入彩色图像(默认值)。

cv2.IMREAD_REDUCED_COLOR_2:2,读入图像,并将其转换为2倍缩小的颜色图像。

cv2.IMREAD_REDUCED_GRAYSCALE_2:3,读入图像,并将其转换为2倍缩小的灰度图像。

填写前面的字符或后面的数字代码具有同样的效果,即:

img = cv2.imread('图像地址', cv2.IMREAD_GRAYSCALE)
img = cv2.imread('图像地址', 0)
1


以上两行代码都可以读入灰色图像。

读取进图像后,图像数据将会以像素值列表的形式保存。


2 展示图象


首先,使用namedWindow可以建立一个窗口


cv2.namedWindow('窗口名称')


之后,在窗口中显示图像

cv2.imshow('窗口名称', 图像变量)


如果遇到不存在的窗口,也会根据名称自动建立该窗口,不会报错。


3 销毁窗口


如果窗口后续不再需要,可以手动关闭或者使用代码销毁。


cv2.destroyWindow('窗口名称')
cv2.destroyAllWindows( )


以上分别为销毁指定窗口和销毁全部窗口。

在实际项目中,该功能通常与按键操作联合使用。

img=cv2.imread('图像地址') 
cv2.imshow("demo", img ) 
cv2.waitKey() 
cv2.destroyWindow("demo")


在上面的代码中,waitkey函数用来等待按键,函数可传入的参数为delay值。这一函数的功能是,当产生按键后继续执行代码。虽然函数为保存函数的返回值,但该函数具有返回值,返回值为案件的ASCII码。

如果参数delay的值为一个正数,则在这段时间内,程序等待按下键盘按键。当有按下键盘按键的事件发生时,就继续执行后续程序语句;如果在delay参数所指定的时间内一直没有这样的事件发生,则超过等待时间后,继续执行后续的程序语句。


这段代码是实现了在按下任意按键后,摧毁demo窗口。


4 图像保存


OpenCV提供了函数cv2.imwrite(),用来保存图像,该函数的语法格式为:


retval = cv2.imwrite( filename, img[, params] )


尽管该函数的返回值并不常用,但确实有返回值。如果保存成功,则返回逻辑值真(True);如果保存不成功,则返回逻辑值假(False)。


2 OpenCV常用库

除了OpenCV主库之外,还具有一些贡献库作为OpenCV的扩展模块。该扩展库的名称为opencv_contrib,主要由社区开发和维护,其包含的视觉应用比OpenCV主库更全面。OpenCV贡献库中包含非OpenCV许可的部分,并且包含受专利保护的算法。因此,在使用该模块前需要特别注意。


以下是一些常用的OpenCV贡献库:


objdetect:该库包含了许多目标检测算法,用于检测图像中的物体,例如人脸,眼睛,车辆等。它支持Haar级联分类器,深度学习网络等多种技术。

imgproc:该库包含了许多图像处理算法,用于对图像进行预处理,例如缩放,旋转,阈值化等。它还包括许多图像滤波器,例如高斯滤波器,中值滤波器等。

video:该库包含了许多视频处理算法,用于从视频中提取信息,例如跟踪物体,检测运动等。它支持视频编码和解码,以及视频文件的读写。

calib3d:该库包含了许多相机标定和三维重建算法,用于计算相机的内部参数和外部参数,以及从二维图像重建三维环境。

photo:该库包含了许多图像增强算法,用于改善图像质量,例如去噪,消除曝光不均等。它还包括图像合成和混合算法,用于将多张图像组合在一起。


相关文章
|
7月前
|
人工智能 计算机视觉 Python
【OpenCV】计算机视觉图像处理基础知识(上)
【OpenCV】计算机视觉图像处理基础知识(上)
|
7月前
|
算法 计算机视觉
【OpenCV】计算机视觉图像处理基础知识(下)
【OpenCV】计算机视觉图像处理基础知识(下)
|
7月前
|
机器学习/深度学习 人工智能 机器人
【opencv】计算机视觉基础知识
【opencv】计算机视觉基础知识
|
7月前
|
存储 计算机视觉 Python
OpenCV 4基础篇| OpenCV图像基本操作
OpenCV 4基础篇| OpenCV图像基本操作
|
Ubuntu 网络安全 Docker
[笔记]Qt5+FFMpeg+Opencv 实现实时美颜直播推流《一》基础知识以及直播服务器配置
[笔记]Qt5+FFMpeg+Opencv 实现实时美颜直播推流《一》基础知识以及直播服务器配置
169 0
|
编解码 计算机视觉 C++
【OpenCV图像处理2】OpenCV 基础知识
【OpenCV图像处理2】OpenCV 基础知识
160 0
|
存储 计算机视觉 C++
【OpenCv】c++ 入门认识 Mat 类,单通道 Mat 的基本操作
【OpenCv】c++ 入门认识 Mat 类,单通道 Mat 的基本操作
313 0
|
计算机视觉
OpenCV学习笔记(二)【图像基本操作】
OpenCV学习笔记(二)【图像基本操作】
OpenCV学习笔记(二)【图像基本操作】
|
算法 计算机视觉 索引
数字图像处理OpenCV——实验一 熟悉OpenCV环境和基本操作
实验一 熟悉OpenCV环境和基本操作 熟悉OpenCV运行环境,了解图像的基本操作及直方图均衡化。 利用OpenCV产生一幅图像,尺寸为200*240,三通道,其中某一块为红色,其它皆为黑色,示例图如下。 对一副图像进行直方图均衡化处理。要求自行编写直方图均衡化函数,实现图像灰度均衡的算法步骤如下: (1) 统计直方图数组,用一个数组p记录p[i]; (2) i从1开始,令S[i]=S[i-1]+p[i],S[0]=p[0]; (3) 一个数组L记录新的S索引值,即令L[i]=S[i]*(256-1);
344 0
数字图像处理OpenCV——实验一 熟悉OpenCV环境和基本操作