从零开始学cv-1:概述与图像的基本操作

一:概述

学习OpenCV对于计算机视觉领域的学习者来说至关重要。首先,OpenCV是一个功能强大且开源的计算机视觉库,它提供了丰富的API,能够轻松实现图像处理、物体识别、跟踪、机器学习等多种视觉任务。其次,掌握OpenCV意味着具备了处理实际视觉问题的能力,这对于求职者来说是一个极具竞争力的技能。此外,深度学习技术通常需要大量的数据,在许多情况下,数据的稀缺不足以支撑深度学习模型的训练,而学会opencv图像增强技术可以进一步扩充数据集,提升模型检测的效果。最后,OpenCV具有跨平台特性,支持多种编程语言,使得开发者可以在不同的环境中高效地开展工作。本系列的宗旨在于梳理和总结常用的OpenCV函数库,并通过具体案例深入探讨相关函数的应用,以加深对它们的理解和掌握。

二:图像的基本操作

2.1 图像读取

cv2.imread(filename,flags) 用于从指定的文件读取图像。
函数说明:
函数 cv2.imread() 从指定文件加载图像并返回该图像的矩阵。如果无法读取图像(文件丢失,权限不正确,格式不支持或无效),该函数返回一个空矩阵。
参数说明:
filename:读取图像的文件路径和文件名
flags:读取图片的方式,可选项
cv2.IMREAD_COLOR(1):始终将图像转换为 3 通道BGR彩色图像,默认方式
cv2.IMREAD_GRAYSCALE(0):始终将图像转换为单通道灰度图像
cv2.IMREAD_UNCHANGED(-1):按原样返回加载的图像(使用Alpha通道)
cv2.IMREAD_ANYDEPTH(2):在输入具有相应深度时返回16位/ 32位图像,否则将其转换为8位
cv2.IMREAD_ANYCOLOR(4):以任何可能的颜色格式读取图像

注意:有时候代码报错,比如xxx为None,大概率是文件路径问题,注意修改文件路径确保路径中不包含中文字符 ,并且最好在路径前面加r并且OpenCV 中彩色图像使用 BGR 格式,而 PIL、PyQt、matplotlib 等库使用的是 RGB 格式,这个等后续若是用opencv做深度学习时一定要注意.

2.2 图像显示:

cv2.imshow(winname,img) 用于创建一个窗口并显示图像。
函数说明:
函数对于 8 位无符号图像,按原样显示;对于16 位无符号或 32 位整数图像,将像素值范围 [0,255 * 256] 映射到 [0,255] 显示;对于32 位浮点图像,将像素值范围 [0,1] 映射到 [0,255] 显示;
如果指定窗口尚未创建,则创建一个自适应图像大小的窗口;
参数说明:
winname:字符串,显示窗口的名称。
img:所显示的 OpenCV 图像,nparray 多维数组。
注意事项:在显示的时候最好后面加cv2.waitkey()函数等待一会不然窗口销毁过快导致看不到图片,最好确保图像的范围在[0-255]区间以防止显示图与你想要的图片不符合.

例子:

import cv2
imgFile = r"D:\pythonProject\13.jpg"  # 读取文件的路径
img1 = cv2.imread(imgFile, flags=1)  # flags=1 读取彩色图像(BGR)
img2 = cv2.imread(imgFile, flags=0)  # flags=0 读取为灰度图像
cv2.imshow("img1",img1) # 显示图像1
cv2.imshow("img2",img2) # 显示图像2
cv2.waitKey(0)

效果:
在这里插入图片描述

2.3图像保存:

cv2.imwrite(save_path, img, flag),可以将numpy数组保存在save_path中
函数说明:
此函数的作用是把图像保存到指定的文件。只能保存 BGR 3通道图像,或 8 位单通道图像、或 PNG/JPEG/TIFF 16位无符号单通道图像。
参数说明:
第一个参数是要保存的文件名,第二个参数是要保存的图像的名字。可选的第三个参数,它针对特定的格式:对于JPEG,其表示的是图像的质量,用0 - 100的整数表示,默认95;对于png ,第三个参数表示的是压缩级别。默认为3在一般的用法中,第三个参数一般不填.

代码如下(示例):

imgFile = r"D:\pythonProject\13.jpg"  # 读取文件的路径
img3 = cv2.imread(imgFile, flags=1)  # flags=1 读取彩色图像(BGR)
saveFile = "./imgsave.jpg"  # 保存文件的路径
# cv2.imwrite(saveFile, img3, [int(cv2.IMWRITE_PNG_COMPRESSION), 8])  # 保存图像文件, 设置压缩比为 8
cv2.imwrite(saveFile, img3)  # 保存图像文件

三:总结

本章介绍了opencv图像基本操作,分别介绍了图像的读取、显示和保存。cv2.imread()用于读取图像,支持多种格式和读取方式;cv2.imshow()用于显示图像,需要注意窗口的创建和图像格式的适配;cv2.imwrite()用于保存图像,支持不同的保存格式和质量设置。在使用OpenCV时,需注意文件路径的正确性和图像格式的兼容性,特别是BGR和RGB格式的差异。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值