文章目录
一,简介:
OpenCV是一个开源的计算机视觉和机器学习软件库,它提供了大量用于处理图像和视频的函数。OpenCV支持多种编程语言,包括C++、Python、Java等,广泛应用于学术研究和商业产品中。
同时在深度学习时代,学习OpenCV的重要性不言而喻,它不仅能够通过图像预处理确保输入数据的质量,优化模型的训练效率和性能,还能通过数据增强技术提升模型的泛化能力,使其更好地适应多变的环境和条件。此外,掌握OpenCV为研究人员和开发者提供了实验不同数据处理方法的灵活性,促进了模型架构和训练策略的创新,从而推动深度学习领域的持续发展。因此,学习OpenCV对于构建高效、鲁棒且适用于真实场景的深度学习模型至关重要。
在这个系列文章中,我们将深入探索OpenCV这一强大的计算机视觉库,详细介绍其常用函数。从基本的图像读取与显示,到高级的图像处理技巧,我们将一步步带领大家掌握OpenCV的核心功能,助您轻松应对各种计算机视觉任务。
二,图像的基础操作:
2.1,图像的读取显示与保存
2.1.1图像的读取cv2.imread:
cv2.imread(filename,flags) 是 OpenCV 库中的一个函数,用于从文件系统中加载图像。以下是该函数的详细讲解:
参数:
● filename:这是一个字符串,代表图像文件的路径,包括文件名和扩展名(如 ‘.jpg’, ‘.png’, ‘.bmp’ 等)。
● flags:这是一个可选参数,用于指定图像的读取模式。它可以有以下几种值:
○ cv2.IMREAD_COLOR:这是默认值,它读取图像为彩色图像。如果图像文件的格式是灰度图像,它也会被转换为彩色图像(即每个像素由三个通道组成,分别是蓝色、绿色和红色)。
○ cv2.IMREAD_GRAYSCALE:这个标志将图像以灰度模式读取,即每个像素只有一个强度值,没有颜色信息。
○ cv2.IMREAD_UNCHANGED:这个标志以图像的原始位深度和通道数读取图像,包括可能的alpha通道(透明度信息)。
返回值:
● 如果图像读取成功,函数返回一个 NumPy 数组,代表图像的像素数据。
● 如果图像文件不存在或无法读取,函数将返回 None。
注意事项:
● 如果文件路径错误或文件不存在,cv2.imread() 不会抛出异常,而是返回 None。因此,在使用返回的图像数据之前,应该检查是否为 None。
● 读取的图像数据是以 BGR 格式存储的,而不是通常的 RGB 格式。
● 图像数据是一个三维数组,其中第一维是图像的高度,第二维是图像的宽度,第三维是颜色通道(灰度图像则只有两个维度)。
2.1.2图像的显示cv2.imshow与等待cv2.waitKey:
cv2.imshow() 和 cv2.waitKey() 是 OpenCV 库中用于显示图像和等待键盘事件的两个重要函数。以下是这两个函数的详细介绍:
cv2.imshow()
功能: cv2.imshow(winname,mat) 函数用于在一个窗口中显示图像。它是 OpenCV 图形用户界面功能的一部分,用于可视化图像处理的结果。
参数:
● winname:这是一个字符串,代表窗口的名称。每个显示的窗口都应该有一个唯一的名称。
● mat:这是一个图像矩阵,通常是使用 cv2.imread() 读取的图像,或者是经过某种图像处理后的结果。
注意事项:
● 在调用 cv2.imshow() 之前,确保已经有一个 OpenCV 窗口环境。
● 如果窗口名称已经存在,该函数将在该窗口中显示新的图像,覆盖之前的图像。
cv2.waitKey():
功能: cv2.waitKey(delay) 函数用于等待一个键盘事件发生。它通常与 cv2.imshow() 一起使用,以便在显示图像的窗口中等待用户的按键操作。
参数:
● delay:这是一个整数值,表示等待键盘事件的时间(毫秒)。如果 delay 是正数,函数将等待指定的毫秒数;如果 delay 是 0,它会无限期等待直到有按键事件;如果 delay 是负数,函数不会等待,立即返回。
返回值:
● retval:返回按键的 ASCII 码值,如果没有按键事件发生,则返回 -1。
注意事项:
● 如果 cv2.waitKey() 在 cv2.imshow() 之后没有被调用,显示的图像窗口可能会立即关闭,因为程序会继续执行而不会暂停。
● 为了使窗口保持打开状态,通常会在 cv2.waitKey() 后面使用一个特定的等待时间,例如 cv2.waitKey(0)。
● 如果要检测特定的按键事件,可以通过返回值与按键的 ASCII 码进行比较。
2.1.3图像保存cv2.imwrite:
retval = cv2.imwrite(filename, img) 是 OpenCV 库中的一个函数,用于将图像保存到文件系统中。以下是该函数的详细介绍:
功能&#