4K+ 次浏览
对象的纵横比计算为对象边界矩形的宽度和高度之比。因此,要计算纵横比,我们首先必须找到对象的边界矩形。可以使用 cv2.boundingRect() 函数找到对象的边界矩形。它接收对象的轮廓点并返回边界矩形的左上角坐标 (x, y) 和 (宽度, 高度)。我们使用宽度和高度来计算纵横比。语法 x, y, w, h = cv2.boundingRect(cnt) aspect_ratio = float(w)/h 这里,“cnt” 是一个 numpy 数组…… 阅读更多
1K+ 次浏览
对象的范围计算为轮廓面积与其边界矩形面积之比。因此,要计算范围,我们首先必须找到轮廓面积和边界矩形面积。可以使用 cv2.contourArea() 函数找到对象的轮廓面积。语法 范围可以按如下方式计算: area = cv2.contourArea(cnt) x, y, w, h = cv2.boundingRect(cnt) rect_area = w*h extent = float(area)/rect_area 这里,“cnt” 是图像中对象轮廓点的 numpy 数组。步骤您可以使用以下步骤计算范围…… 阅读更多
双边滤波操作在平滑图像和去除噪声方面非常有效。双边滤波的主要优点是它可以保留边缘,这与平均滤波和中值滤波不同。与其他滤波器相比,双边滤波操作速度较慢。我们可以使用 cv2.bilateralFilter() 方法对图像执行双边滤波。语法以下是此方法的语法。 cv2.bilateralFilter(img, d, sigmaColor, sigmaSpace) 此方法接受以下参数:img - 应用双边滤波操作的输入图像。d - 表示整数类型的变量,代表…… 阅读更多
9K+ 次浏览
我们可以使用函数 cv2.fitEllipse() 将椭圆拟合到对象。椭圆内接于旋转矩形。旋转矩形是一个包围对象的最小面积边界矩形。语法此函数使用的语法为: ellipse = cv2.fitEllipse(cnt) 其中,“cnt” 是轮廓点。它表示为轮廓点的数组。输出 - 它返回一个元组的元组,格式为 ((x, y), (majorAxis, minorAxis), angle)。(x, y) 是中心的坐标,(majorAxis, minorAxis) 是短轴和长轴的长度,angle 是旋转角度…… 阅读更多
在 OpenCV 中,彩色 (RGB) 图像表示为一个 3 维 numpy 数组。图像的像素值使用范围从 0 到 255 的 8 位无符号整数 (uint8) 存储。对两幅图像执行按位或运算是在相应图像的这些像素值的二进制表示上执行的。语法以下是对此两幅图像执行按位或运算的语法: cv2.bitwise_or(img1, img2, mask=None) img1 和 img2 是两幅输入图像,mask 是掩码操作。步骤要计算两幅图像之间的按位或,您可以使用以下步骤…… 阅读更多
要向图像添加水印,我们将使用 OpenCV 中的 cv2.addWeighted() 函数。您可以使用以下步骤在输入图像上创建水印:导入所需的库。在以下所有 Python 示例中,所需的 Python 库是 OpenCV。确保您已安装它。 import cv2 读取我们将要应用水印的输入图像并读取水印图像。 img = cv2.imread("panda.jpg") wm = cv2.imread("watermark.jpg") 获取输入图像的高度和宽度以及水印图像的高度和宽度。 h_img, w_img…… 阅读更多
3K+ 次浏览
对象的最小外接圆(外接圆)是一个完全覆盖该对象且面积最小的圆。我们可以使用函数 cv2.minEnclosingCircle() 找到对象的最小外接圆。语法此函数的语法为: (x, y), radius = cv2.minEnclosingCircle(cnt) 其中,“cnt” 是轮廓点。它表示为轮廓点的数组。输出 - 它返回中心坐标 (x, y) 和最小外接圆的半径。(x, y) 和 radius 的数据类型为 float。因此,要在图像上绘制圆圈,我们将它们转换为整数。要绘制…… 阅读更多
凸包看起来类似于轮廓逼近,但它并非完全是轮廓逼近。凸包是围绕对象的凸曲线。凸曲线总是凸出的,或者至少是平的。凸包查找凸缺陷并对其进行修正。语法要查找凸包,我们使用以下函数: hull = cv2.convexHull(cnt, hull, clockwise, returnPoints) 参数 cnt 是轮廓点。它表示为轮廓点的数组。hull 是输出,通常我们避免使用它。clockwise - 方向标志。如果为 True,则输出凸…… 阅读更多
Hu 矩可以使用 cv2.HuMoments() 函数找到。它返回七个对平移、旋转和缩放不变的矩。第七个矩是倾斜不变的。要计算 Hu 矩,我们需要首先找到图像。图像矩是使用对象的轮廓为对象计算的。因此,首先,我们检测对象的轮廓,然后应用 cv2.moments() 函数来计算矩。语法此函数使用以下语法: M = cv2.moments(cnt) cv2.HuMoments(M) 这里,cnt - 它是图像中对象轮廓点的 numpy 数组。M…… 阅读更多
39K+ 浏览量
为了检测图像中的矩形和正方形,我们首先检测图像中的所有轮廓。然后遍历所有轮廓。为每个轮廓查找近似轮廓。如果近似轮廓中的顶点数量为4,则我们计算纵横比以区分矩形和正方形。如果纵横比在0.9到1.1之间,则我们称之为正方形,否则为矩形。请参见下面的伪代码。for cnt in contours: approx = cv2.approxPolyDP(cnt) if len(approx) == 4: x, y, w, h = ... 阅读更多