在计算机视觉和图像处理领域,图像预处理是一个重要的步骤,它能够提高后续处理(如特征提取、目标检测等)的准确性和效率。OpenCV 提供了许多图像预处理的函数和方法,以下是一些常见的图像预处理操作:
- 图像空间转换
- 图像大小调整
- 图像仿射变换
- 图像翻转
- 图像裁剪
- 图像二值化处理
- 图像去噪
- 边缘检测
- 图像平滑处理
- 图像形态学
是 OpenCV 库中的一个函数,用于翻转图像。翻转可以是水平翻转、垂直翻转或同时水平和垂直翻转。这个函数接受两个参数:要翻转的图像和一个指定翻转类型的标志。
函数签名
讯享网
参数说明
- src:输入图像,可以是任意类型和深度的多通道图像。
- flipCode:指定翻转类型的整数标志
- :沿 X 轴翻转(垂直翻转)
- :沿 Y 轴翻转(水平翻转)
- :沿 X 轴和 Y 轴翻转(同时水平和垂直翻转)
- dst:可选参数,输出图像。如果未提供,输出图像将与输入图像具有相同的尺寸和类型。
示例
以下是一些使用 的示例代码:
讯享网
仿射变换(Affine Transformation)是一种线性变换,它保持了点之间的相对距离不变,即平行线在变换后仍然保持平行。在图像处理中,仿射变换常用于旋转、缩放、平移和剪切等操作。
图像旋转
旋转操作可以将图像绕着某个点旋转一定的角度
是 OpenCV 库中的一个函数,用于获取旋转矩阵。这个函数主要用于图像的旋转变换。旋转矩阵是一个 2x3 的矩阵,可以用来将图像围绕指定的中心点旋转指定的角度,并且可以选择是否进行缩放。
函数签名
参数说明
- center:旋转中心点的坐标,格式为 。
- angle:旋转角度,单位为度。正角度表示逆时针旋转,负角度表示顺时针旋转。
- scale:缩放比例。如果设置为 1,则不进行缩放。
返回值
- M:2x3 的旋转矩阵。
示例
以下是一个使用 的示例代码,
讯享网
cv2.warpAffine 函数
仿射变换 函数
- src: 输入图像。
- M: 2x3 的变换矩阵,类型为 。
- dsize: 输出图像的尺寸,形式为 。
- dst (可选): 输出图像。如果未提供,则会自动创建一个新的图像。
图像平移
平移操作可以将图像中的每个点沿着某个方向移动一定的距离
讯享网
其中,tx 和 ty 分别表示在x轴和y轴方向上的平移距离。
图像缩放
缩放操作可以改变图像的大小
sx 和 sy 分别表示在x轴和y轴方向上的缩放因子。
图像剪切
剪切操作可以改变图像的形状,使其在某个方向上倾斜
讯享网
OpenCV中的色彩空间转换是将图像从一种颜色表示形式转换为另一种颜色表示形式的过程。常见的颜色空间包括RGB、HSV、YUV等。
色彩空间转换有几个重要的作用:
- 方便图像处理:在不同的颜色空间中,对应的通道代表了不同的属性,例如在RGB空间中,红、绿、蓝三个通道分别代表了颜色的强度,而在HSV空间中,H(色相)代表了颜色的种类,S(饱和度)代表了颜色的深浅,V(亮度)代表了颜色的明暗。因此,对于不同的处理需求,选择不同的颜色空间进行处理可以更加方便。
- 提高图像处理效果:在某些情况下,使用某些特定的颜色空间可以提高图像处理的效果。例如,在HSV空间中,可以通过调整S(饱和度)和V(亮度)来提高图像的对比度并去除噪点。
- 节省计算资源:在某些情况下,使用特定的颜色空间可以帮助我们节省计算资源。例如,在RGB空间中,每个像素需要3个通道来表示,而在灰度空间中,每个像素只需要一个通道就可以表示。因此,如果我们只需要处理亮度信息而不需要颜色信息时,将图像转换为灰度空间可以节省计算资源。
总之,色彩空间转换在图像处理中是一项非常重要的技术,它可以方便我们对图像进行处理,并提高图像处理的效果和节省计算资源。
是OpenCV中的一个函数,用于图像颜色空间的转换。它可以将一个图像从一个颜色空间转换为另一个颜色空间,比如从RGB到灰度图像的转换,或者从BGR到HSV的转换等。
函数的语法如下:
参数说明:
- :输入图像,可以是一个NumPy数组或者一个OpenCV的Mat对象。
- :指定转换的类型,可以使用预定义的转换代码,例如表示从BGR到灰度图像的转换。
RGB 转 Gray(灰度)
RGB 转 Gray(灰度),将彩色图像转换为灰度图像,可以减少数据量并简化算法。
讯享网
RGB 转 HSV
RGB 转 HSV,HSV(Hue, Saturation, Value)色彩空间在颜色分割和颜色识别中非常有用。
案例:
讯享网
是 OpenCV 中用于图像二值化的函数。它通过设置阈值将图像分为前景和背景,常用于图像处理和分析。以下是该函数的主要功能和用法简介:
功能
将灰度图像转换为二值图像,根据指定的阈值将像素值分为两类:高于阈值的像素设为一个值(通常是255),低于阈值的像素设为另一个值(通常是0)。
语法
参数
- src: 输入的灰度图像。
- thresh: 阈值,决定分割的界限。
- maxval: 当像素值超过阈值时,赋予的最大值(通常为255)。
- type: 阈值类型
常用的有:
- : 超过阈值的像素设为最大值,其余设为0。
- : 超过阈值的像素设为0,其余设为最大值。
- : 超过阈值的像素设为阈值,其余不变。
- : 超过阈值的像素不变,其余设为0。
- : 超过阈值的像素设为0,其余不变。
返回值
- retval: 实际使用的阈值(可能与输入值不同)。

- dst: 输出的二值图像。
它通常用于创建掩模,以便从图像中提取特定颜色的区域。
函数原型
讯享网
参数
- src: 输入的图像,可以是彩色图像或灰度图像。
- lowerb: 颜色范围的下界(数组或元组),指定了要提取的颜色的最小值。
- upperb: 颜色范围的上界(数组或元组),指定了要提取的颜色的最大值。
返回值
- 返回一个二值图像,白色部分表示在指定颜色范围内的区域,黑色部分表示不在范围内的区域
案例
是 OpenCV 库中的一个函数,用于对两个图像进行按位与操作。这个操作会逐个像素地对两个输入图像进行比较,只有在两个像素均为 255(白色)时,输出的像素才会为 255(白色),否则输出为 0(黑色)。这个函数在图像处理中的应用非常广泛,尤其是在掩膜和图像分割等任务中
函数原型
讯享网
参数说明
- : 第一个输入图像。
- : 第二个输入图像。两幅图像应具有相同的尺寸和类型。
- : 可选参数,用于指定一个掩膜。如果提供,只有在掩膜的相应位置为非零时,才会计算输出。
返回值
- 返回按位与操作后的图像()。
案例
函数可以在二值图像中找到轮廓,并返回轮廓的点集。轮廓可以用来表示物体的边界,常用于物体检测、分割和形状分析。
语法
讯享网
参数
- image: 输入的二值图像。通常在调用该函数之前需要将图像转换为灰度图像并进行二值化处理(如使用 或 )。
- mode: 轮廓检索模式
- : 只检索外部轮廓。
- : 检索所有轮廓,并将其放入列表中。
- : 检索所有轮廓,并建立层级关系。
- method: 轮廓逼近方法
- : 压缩轮廓,仅保留端点。
- : 保留所有轮廓点。
返回值
- contours: 一个 Python 列表,其中每个元素是一个轮廓(即一组点),轮廓的点以 NumPy 数组的形式存储。
- hierarchy: 轮廓的层级信息,包含轮廓之间的关系。
案例:
cv2.boundingRect 函数介绍
是 OpenCV 中用于计算轮廓的最小外接矩形的函数。这个函数可以返回一个包含轮廓的最小矩形的边界框,通常用于对象检测、图像分割等任务中。最小外接矩形是一个完全包围轮廓的矩形,其边与图像的坐标轴平行。
案例
讯享网

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/151761.html