新手小白包会(python) | OpenCV入门教程,带你踏入计算机视觉领域

目录

一、OpenCV简介

1.应用场景

2.学习与使用

二、OpenCV安装 

1.安装

2.验证

三、OpenCV使用

1.图片读取与展示(cv2.imread() | cv2.imshow())

2.图片灰度图(cv2.IMREAD_GRAYSCALE)

3.图片保存(cv2.imwrite())

4.视频读取(cv2.VideoCapture())

5.图像截取

6.提取与合并RGB颜色通道

1)提取(B, G, R = cv2.split(pic))

2)合并(cv2.merge((B, G, R)))

7.图片修改

1)图片组合

2)图片缩放(cv2.resize())

8.图像运算 

1)图像加法运算(cv2.add(pic_1, pic_2))

 2)图像加权运算(cv2.addWeighted())

9.边界填充(cv2.copyMakeBorder())

10.阈值处理(cv2.threshold()) 

 11.图像平滑处理

1)均值滤波(cv2.blur)

2)方差滤波(cv2.boxFilter())

 3)高斯滤波(cv2.GaussianBlur())

 4)中值滤波(cv2.medianBlur())

 12.图像形态学(cv2.morphologyEx)

1)图像腐蚀(cv2.erode())

2)图像膨胀(cv2.dilate()) 

 3)图像开运算与闭运算(cv2.MORPH_OPEN()、cv2.MORPH_CLOSE())

 4)顶帽、黑帽运算(cv2.MORPH_TOPHAT()、cv2.MORPH_BLACKHAT())

 13.轮廓检测(cv2.findContours())

14.绘制轮廓(cv2.drawContours())

 四、基础篇总结


一、OpenCV简介

        OpenCV,即开源计算机视觉库(Open Source Computer Vision Library),是一个广泛使用的计算机视觉和图像处理软件库。它提供了大量的算法和函数,用于图像和视频处理、目标检测、机器学习等任务。

1.应用场景

        OpenCV在卫星和网络地图上拼接图像、图像扫描校准、医学图像的降噪、目标分析、安保以及工业检测系统等多个领域都有广泛的应用。此外,OpenCV还在自动驾驶和安全系统、制造感知系统、相机校正、军事应用以及无人空中、地面、水下航行器等方面发挥着重要作用。

2.学习与使用

        OpenCV为初学者提供了丰富的教程和示例代码,帮助他们快速入门和提高。开发者可以通过阅读OpenCV的官方文档、参加在线课程或加入社区论坛等方式获取帮助和支持。

        随着对OpenCV的深入了解和实践经验的积累,开发者将能够更加熟练地运用这个强大的计算机视觉库来解决实际问题。

二、OpenCV安装 

1.安装

打开终端,输入 pip install opencv-python 即可,如需指定版本,输入 pip install opencv-python==版本号 即可。

2.验证

打开Python解释器。

输入import cv2和 print(cv2.__version__)来验证OpenCV是否安装成功以及安装的版本号。

三、OpenCV使用

1.图片读取与展示(cv2.imread() | cv2.imshow())

pic = cv2.imread('图片路径')  # 读取图片
cv2.imshow('pic', pic)  # 显示图片(自定义名称, 图片数据)
cv2.waitKey(ms)  # 在一个给定的时间内(ms)等待用户按键触发, 到时自动结束
cv2.destroyAllWindows()  # 关闭所有打开的窗口并释放所有相关内存

 cv2.imread():传入图片路径及图片后缀;

cv2.imshow():参数1:自定义的图片名称,参数2:传入读取到的图片;

cv2.waitKey():传入图片展示等待的时间,传入0图片会一直展示,直到按任意键退出;

cv2.destroyALLWindows():关闭所有打开的窗口,无需传入参数。

2.图片灰度图(cv2.IMREAD_GRAYSCALE)

#方法一
pic_gray = cv2.imread('图片路径', cv2.IMREAD_GRAYSCALE)
#方法二
pic_gray = cv2.cvtColor(pic, cv2.COLOR_BGR2GRAY)

方法一:读取时直接读取灰度图

方法二:将读取到的原图转换为灰度图

3.图片保存(cv2.imwrite())

cv2.imwrite('保存路径', pic)

 cv2.imwrite():参数1:需要保存到的路径,记得加图片后缀,不然会保存失败,参数2:要保存的图片

4.视频读取(cv2.VideoCapture())

vc = cv2.VideoCapture('视频路径')
if vc.isOpened():  # 判断vc视频是否正确打开
    open_vd, frame = vc.read()  # 读取每一帧视频。返回值1为读取是否有内容,Fasle表示读取结束。返回值2为这一帧的图片内容
else:
    open_vd = False
while open_vd:  (open_vd=True则一直运行)
    open_vd, frame = vc.read()
    if frame is None:  # 读取完毕之后,frame的值为None
        break
    cv2.imshow('frame', frame)
    if cv2.waitKey(50) == 27:  # cv2.waitKey获取键盘符号的ASCII码,27为键盘Esc键
        break

vc.release()  # 是cv2.VideoCapture对象的一个方法,用于释放视频捕获器的资源。在调用该方法后,视频捕获器将不再使用,因此应该在使用完毕后立即调用该方法。

视频读取的原理就是基于每一帧进行读取与处理 

vc.read():返回值1:为布尔值,True为有内容,False为未读取到内容,返回值2:视频这一帧的图像

5.图像截取

pic_roi = pic[200:800, 400:800]

pic_roi = pic[高, 宽]

6.提取与合并RGB颜色通道

1)提取(B, G, R = cv2.split(pic))

#方法一
B = pic[:, :, 0]  # B
G = pic[:, :, 1]  # G
R = pic[:, :, 2]  # R
#方法二
B, G, R = cv2.split(pic)
# 只保留B通道
pic[:, :, 1] = 0  # G通道设为0
pic[:, :, 2] = 0  # R通道设为0

2)合并(cv2.merge((B, G, R)))

pic = cv2.merge((B, G, R))

 也可用这种方式将图像1通道转换为3通道,例如:pic = cv2.merge((pic_gray, pic_gray, pic_gray))

7.图片修改

1)图片组合

方法一
pic_gray = np.stack((pic_gray) * 3, axis=-1)  # 将灰度图片1通道转换成3通道
方法二
pic_gray = cv2.merge((pic_gray, pic_gray, pic_gray))  # 将灰度图片1通道转换成3通道
图片组合
pic1[100:200, 100:200] = pic2[300:400, 400:500]  # 矩阵大小必须要统一

2)图片缩放(cv2.resize())

pic_resize = cv2.resize(pic, (200, 200))

cv2.resize(src, dsize) 

src:要调整大小的输入图像;
dsize:输出图像的大小,可以是一个元组,例如(宽,高),或者使用整

OpenCV是一个广受欢迎的开源计算机视觉库 是一个广受欢迎的开源计算机视觉库 ,它提供了 很多函数,实现很多计算机视觉法,从最基本的 滤波到高级物体检测 皆有涵盖 。很多 初学者希望快速掌握 OpenCV OpenCV OpenCVOpenCV的使用方法 ,但 往会 遇到 各种样的困难。 其 实仔细分析,造成这些困难的原因 有两类:第一是 C/C++/C++/C++/C++编程基础不过关; 第二类是不了解算法原理。 解决 这些 困难无非提升编程能力,以及理论基 础知识。 提升编程能力需要多练习,理论知识系统学《数字图 像处理》、《计算机视觉和模式识别等课程,所有这些都不 像处理》、《计算机视觉和模式识别等课程,所有这些都不 像处理》、《计算机视觉和模式识别等课程,所有这些都不 能一蹴而就 , 需要耐下心来认真修炼。 同时我们也 需要 认识到 OpenCV OpenCV OpenCVOpenCV只是一个算法库, 只是一个算法库, 能为我们搭建计算机视觉 应用提供“砖头”。我们并不需要完全精通了算法原理 应用提供“砖头”。我们并不需要完全精通了算法原理 之后 才去使用 OpenCV OpenCV OpenCVOpenCV, 只要了解“砖头”的功能,就可以动手。在实践中学习 才是最高效的学习 方式。 本小册子希望为初学者提供引导,使快速了解 OpenCV OpenCV OpenCVOpenCV的基本数 据结构以及用法。
OpenCV是一个开源的计算机视觉库,提供了丰富的图像处理和计算机视觉算法。下面是一个简单的OpenCV入门教程Python版本): 1. 安装OpenCV库:首先,你需要安装OpenCV库。可以使用pip命令在命令行中执行以下命令进行安装: ``` pip install opencv-python ``` 2. 导入OpenCV库:在Python脚本中,你需要导入OpenCV库才能使用其中的函数和类。可以使用以下代码导入OpenCV库: ```python import cv2 ``` 3. 读取和显示图像:使用OpenCV可以轻松读取和显示图像。以下是一个读取和显示图像的示例代码: ```python # 读取图像 image = cv2.imread('image.jpg') # 显示图像 cv2.imshow('Image', image) cv2.waitKey(0) cv2.destroyAllWindows() ``` 4. 图像处理:OpenCV提供了许多图像处理函数,可以对图像进行各种操作,如调整大小、裁剪、旋转、滤波等。以下是一个简单的图像处理示例代码: ```python # 调整图像大小 resized_image = cv2.resize(image, (new_width, new_height)) # 裁剪图像 cropped_image = image[y:y+h, x:x+w] # 旋转图像 rotated_image = cv2.rotate(image, cv2.ROTATE_90_CLOCKWISE) # 图像滤波 blurred_image = cv2.GaussianBlur(image, (kernel_size, kernel_size), 0) ``` 5. 视频处理:除了图像处理,OpenCV还可以处理视频。以下是一个简单的视频处理示例代码: ```python # 打开视频文件 video = cv2.VideoCapture('video.mp4') while True: # 读取视频帧 ret, frame = video.read() if not ret: break # 显示视频帧 cv2.imshow('Video', frame) # 按下 'q' 键退出循环 if cv2.waitKey(1) & 0xFF == ord('q'): break # 释放视频对象和关闭窗口 video.release() cv2.destroyAllWindows() ``` 这只是OpenCV入门教程的一小部分,OpenCV还有很多其他功能和应用。你可以通过阅读OpenCV官方文档和参考其他教程来深入学习和探索OpenCV的更多功能。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值