ettercap教程(ettercap-graphical)

ettercap教程(ettercap-graphical)目录 图像翻转 图像仿射变换 仿射变换函数 图像旋转 图像平移 图像缩放 图像倾斜 图像色彩空间转换 RGB 转 Gray RGB 转 HSV 图像二值化处理 图像掩模 图像位与操作 图像检测轮廓 绘制轮廓 cv2 flip src flipCode dst gt dst 用于翻转图像 翻转可以是水平翻转 垂直翻转或同时水平和垂直翻转 参数 src 输入图像 可以是任意类型和深度的多通道图像 flipCode



目录

图像翻转

图像仿射变换

仿射变换函数

图像旋转

图像平移

图像缩放

图像倾斜

图像色彩空间转换

RGB 转 Gray

RGB 转 HSV

图像二值化处理

图像掩模

图像位与操作

图像检测轮廓

绘制轮廓


cv2.flip(src, flipCode[, dst]) -> dst

用于翻转图像。翻转可以是水平翻转、垂直翻转或同时水平和垂直翻转。

参数:

  • src:输入图像,可以是任意类型和深度的多通道图像。

  • flipCode

    :指定翻转类型的整数标志:

    • :沿 X 轴翻转(垂直翻转)

    • :沿 Y 轴翻转(水平翻转)

    • :沿 X 轴和 Y 轴翻转(同时水平和垂直翻转)

  • dst:可选参数,输出图像。如果未提供,输出图像将与输入图像具有相同的尺寸和类型。

 
 

仿射变换(Affine Transformation)是一种线性变换,它保持了点之间的相对距离不变,即平行线在变换后仍然保持平行。在图像处理中,仿射变换常用于旋转、缩放、平移和剪切等操作。

cv2.warpAffine(src, M, dsize, dst)

 参数:

  • src: 输入图像。

  • M: 2x3 的变换矩阵,类型为 。

  • dsize: 输出图像的尺寸,形式为 。

  • dst (可选): 输出图像。如果未提供,则会自动创建一个新的图像。

旋转操作可以将图像绕着某个点旋转一定的角度

获取旋转矩阵

旋转矩阵是一个 2x3 的矩阵,可以用来将图像围绕指定的中心点旋转指定的角度,并且可以选择是否进行缩放。

cv2.getRotationMatrix2D(center, angle, scale) -> M

参数:

  • center:旋转中心点的坐标,格式为 。

  • angle:旋转角度,单位为度。正角度表示逆时针旋转,负角度表示顺时针旋转。

  • scale:缩放比例。如果设置为 1,则不进行缩放。

返回值

  • M:2x3 的旋转矩阵。

 
 

平移操作可以将图像中的每个点沿着某个方向移动一定的距离

 
 

缩放操作可以改变图像的大小

 
 

改变图像的形状,使其在某个方向上倾斜

 
 

OpenCV中的色彩空间转换是将图像从一种颜色表示形式转换为另一种颜色表示形式的过程。常见的颜色空间包括RGB、HSV、YUV等。

色彩空间转换的重要作用:

(1)方便图像处理:在不同的颜色空间中,对应的通道代表了不同的属性,例如在RGB空间中,红、绿、蓝三个通道分别代表了颜色的强度,而在HSV空间中,H(色相)代表了颜色的种类,S(饱和度)代表了颜色的深浅,V(亮度)代表了颜色的明暗。因此,对于不同的处理需求,选择不同的颜色空间进行处理可以更加方便。

(2)提高图像处理效果:在某些情况下,使用某些特定的颜色空间可以提高图像处理的效果。例如,在HSV空间中,可以通过调整S(饱和度)和V(亮度)来提高图像的对比度并去除噪点。

(3)节省计算资源:在某些情况下,使用特定的颜色空间可以帮助我们节省计算资源。例如,在RGB空间中,每个像素需要3个通道来表示,而在灰度空间中,每个像素只需要一个通道就可以表示。因此,如果我们只需要处理亮度信息而不需要颜色信息时,将图像转换为灰度空间可以节省计算资源。

是OpenCV中的一个函数,用于图像颜色空间的转换。它可以将一个图像从一个颜色空间转换为另一个颜色空间,比如从RGB到灰度图像的转换,或者从BGR到HSV的转换等。

cv2.cvtColor(src, code)

RGB 转 Gray(灰度),将彩色图像转换为灰度图像,可以减少数据量并简化算法。

 
 

HSV(Hue, Saturation, Value)色彩空间在颜色分割和颜色识别中非常有用。

 
 

是 OpenCV 中用于图像二值化的函数。它通过设置阈值将图像分为前景和背景,常用于图像处理和分析。

功能:将灰度图像转换为二值图像,根据指定的阈值将像素值分为两类:高于阈值的像素设为一个值(通常是255),低于阈值的像素设为另一个值(通常是0)。

retval, dst = cv2.threshold(src, thresh, maxval, type)

参数

  • src: 输入的灰度图像。

  • thresh: 阈值,决定分割的界限。

  • maxval: 当像素值超过阈值时,赋予的最大值(通常为255)。

  • type(阈值类型),常用的有:

cv2.THRESH_BINARY:超过阈值的像素设为最大值,其余设为0cv2.THRESH_BINARY_INV超过阈值的像素设为0,其余设为最大值cv2.THRESH_TRUNC超过阈值的像素设为阈值,其余不变cv2.THRESH_TOZERO超过阈值的像素不变,其余设为0cv2.THRESH_TOZERO_INV超过阈值的像素设为0,其余不变

返回值

  • retval: 实际使用的阈值(可能与输入值不同)。

  • dst: 输出的二值图像。

 
 

它通常用于创建掩模,以便从图像中提取特定颜色的区域。用于锁定检测目标的位置。

cv2.inRange(src, lowerb, upperb)

参数:

  • src: 输入的图像,可以是彩色图像或灰度图像。

  • lowerb: 颜色范围的下界(数组或元组),指定了要提取的颜色的最小值。

  • upperb: 颜色范围的上界(数组或元组),指定了要提取的颜色的最大值。

返回值:

  • 返回一个二值图像,白色部分表示在指定颜色范围内的区域,黑色部分表示不在范围内的区域

 
 

  是 OpenCV 库中的一个函数,用于对两个图像进行按位与操作。这个操作会逐个像素地对两个输入图像进行比较,只有在两个像素均为 255(白色)时,输出的像素才会为 255(白色),否则输出为 0(黑色)。这个函数在图像处理中的应用非常广泛,尤其是在掩膜和图像分割等任务中。

dst = cv2.bitwise_and(src1, src2, mask=None)

参数:

  • : 第一个输入图像。

  • : 第二个输入图像。两幅图像应具有相同的尺寸和类型。

  • : 可选参数,用于指定一个掩膜。如果提供,只有在掩膜的相应位置为非零时,才会计算输出。

返回值

  • 返回按位与操作后的图像()。

 
 

函数可以在二值图像中找到轮廓,并返回轮廓的点集。轮廓可以用来表示物体的边界,常用于物体检测、分割和形状分析。

contours, hierarchy = cv2.findContours(image, mode, method)

参数:

  • image: 输入的二值图像。通常在调用该函数之前需要将图像转换为灰度图像并进行二值化处理(如使用 或 )。

  • mode(轮廓检索模式):

    • : 只检索外部轮廓。

    • : 检索所有轮廓,并将其放入列表中。

    • 检索所有轮廓,并建立层级关系。

  • method(轮廓逼近方法):

    • : 压缩轮廓,仅保留端点。

    • : 保留所有轮廓点。

返回值

  • contours: 一个 Python 列表,其中每个元素是一个轮廓(即一组点),轮廓的点以 NumPy 数组的形式存储。

  • hierarchy: 轮廓的层级信息,包含轮廓之间的关系。

 
 

(1)cv2.boundingRect()

cv2.boundingRect()是 OpenCV 中用于计算轮廓的最小外接矩形的函数。这个函数可以返回一个包含轮廓的最小矩形的边界框,通常用于对象检测、图像分割等任务中。最小外接矩形是一个完全包围轮廓的矩形,其边与图像的坐标轴平行。

(2)cv2.retangle()

根据cv2.findContours()的返回值,绘制矩形。

编程小号
上一篇 2025-08-27 08:57
下一篇 2025-09-28 10:11

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ri-ji/73505.html