opencv-contour相关内容

Cv2.ApproxPolydp()返回什么?

我正在尝试根据应用cv2.approxPolyDP() 后检测到的轮廓调整图像的大小。然后,我必须根据cv2.approxPolyDP()检测到的轮廓返回值使用cv2.resize()自定义裁剪,并根据cv2.approxPolyDP()检测到的轮廓返回值进行裁剪。 我想知道哪个索引是高度,哪个索引是宽度,或者起始x,y坐标和结束x,y坐标。 def biggestContour(co ..
发布时间:2022-08-16 15:31:54 Python

如何根据二值视频帧中轮廓的近似形状对其进行过滤

我正在进行一个项目,其中我必须检测到一辆红色车辆(请参见下图)。 因为我相信这可以在不使用深度学习(在这种情况下是过度杀伤力)的情况下实现,所以我使用了直方图反投影,这取决于对象的颜色(红色)。结果令人满意 除非场景中存在与目标具有相同颜色分布的目标红色车辆以外的其他对象(请参见我的T恤下面的示例),否则算法会认为它也是感兴趣的对象,从而检测到感兴趣的对象和不相关的对象(我的T恤)。 ..

在opencv中使用质心点画一条线

如何使一条线穿过轮廓的中心?我有轮廓的中心坐标. 解决方案 这就是你解决这个问题的方法 - 原图 - 结果图像 - 您首先需要进行基本过滤并找到轮廓.然后 - 1) 找出轮廓的面积(minAreaRect) 2)从轮廓中提取点(BoxPoints) 3) 将其转换为 numpy 数组 (np.array) 4)对点进行排序(perspective.order_ ..
发布时间:2021-06-12 19:53:21 其他开发

使用 Python (3.7) 在 OpenCV (4.2.0) 中检测矩形,

我正在做一个个人项目,我检测矩形(所有相同的尺寸),然后将这些矩形以相同的顺序(从上到下)放在列表​​中,然后使用某个函数处理每个矩形内的信息.下面是我的测试图片. 我已经设法检测到感兴趣的矩形,但是我不断得到我不想要的其他矩形.如您所见,我只希望将包含信息 (6,9,3) 的三个矩形放入一个列表中. 我的代码 导入 cv2宽度=700高度=700y1=0y2=700x1=500x2 ..
发布时间:2021-06-12 19:51:35 其他开发

cv2.drawContours() - 取消填充字符内的圆圈(Python、OpenCV)

按照@Silencer 的建议,我使用了他发布的代码 here 在我的图像中围绕数字绘制轮廓.在某些时候,使用像 0,6,8,9 这样的数字,我看到它们的内部轮廓(圆圈)也被填充了.我怎样才能防止这种情况?是否有为 cv2.drawContours() 设置的最小/最大动作区域,以便我可以排除内部区域? 我试图通过 cv2.RETR_EXTERNAL 但使用这个参数只考虑整个外部区域. ..
发布时间:2021-06-12 19:40:34 Python

如何在 OpenCV 中的点之间画线?

我有一个元组数组: a = [(375, 193)(364, 113)(277, 20)(271, 16)(52, 106)(133, 266)(289, 296)(372, 282)] 如何在 OpenCV 中的点之间画线? 这是我的代码不起作用: 用于索引,enumerate(a) 中的项目:打印(项目[索引])#cv2.line(image, item[index], item ..
发布时间:2021-06-12 19:39:16 Python

缩放轮廓向上/向外增长

我有一个小脚本 (GitHub)(基于这个答案)来检测白色背景上的物体.脚本工作正常并检测对象.例如,这张图片: 变成这样: 然后我裁剪了 boundingRect(红色的). 我将对这张图片做进一步的操作.例如,我将只裁剪轮廓而不是矩形裁剪.(无论如何,这些都是需要面对的进一步问题.) 我现在想做的是放大/增加轮廓(绿色).我不确定规模和增长在这种情况下是否意味着同一件事 ..
发布时间:2021-06-12 19:38:21 Python

cv::findContours 返回的轮廓是否具有一致的方向?

我正在使用 OpenCV 的 cv::findContours 函数来提取二进制图像中的轮廓,特别是,我正在提取轮廓的层次结构(使用 CV_RETR_CCOMP 标志).在我进一步处理这些轮廓的某个时刻,我需要依赖这些轮廓的一致顶点方向(即逆时针与顺时针). 当然,我可以自己使用轮廓区域的符号来确定方向(由 cv::contourArea(..., true)),但我想知道这是否有必要(除此 ..
发布时间:2021-06-12 19:37:23 其他开发

检查两个轮廓是否相交?

我有 2 个从 cv2.findContours() 接收到的轮廓(cont1 和 cont2).我怎么知道它们是否相交?我不需要坐标,我只需要一个布尔值 True 或 False. 我尝试了不同的方法,并且已经尝试过使用 if ((cont1 & cont2).area() > 0): ...但得到数组没有方法“Area()"的错误 ...cont1array = cv2.findC ..
发布时间:2021-06-12 19:34:28 Python

使用函数的轮廓图

我遇到了以下问题; 我必须在某个点(chi = 2.3)上绘制两个变量chi2(X,Y)的函数的轮廓图.我已经尝试了很多方法,但是我仍然不知道该怎么做.例如,我已完成以下操作: 将numpy导入为np导入matplotlib.pyplot作为pltfrom function import chi2#从另一个文件导入的两个变量函数x = np.arange(-2,2,0.02)y = np. ..
发布时间:2021-04-24 19:42:52 其他开发

查找彼此靠近的对象边界

我正在研究计算机视觉问题,其中的第一步是找到物体彼此靠近的位置.例如,在下面的图片中,我很有趣地找到用灰色标记的区域. 输入: 我目前的方法是先反转图像,然后通过侵蚀进行形态梯度跟随,然后去除一些不有趣的轮廓.脚本如下: img = cv2.imread('mask.jpg',0)img =(255-img)内核= np.ones(((11,11),np.uint8)渐变= cv2 ..
发布时间:2021-04-23 20:27:35 Python

检测网格角

我正在尝试检测必须处理的各种图片中的网格角.图片可能会歪斜,有些可能相对正确,但是我们不能保证所有图片都会像这样. 要确定网格的角点,我尝试使用霍夫线,但无济于事.有时,霍夫线无法识别网格的边缘,因此很难确定绘制的哪些线属于网格的边缘,而哪些是网格线. 然后,我决定使用轮廓线来检测网格的边缘.但是,它拾取了许多轮廓,并导致了相同的问题,即确定哪些轮廓位于所标识的所有轮廓的拐角处. ..

我如何使用python opencv相互分离重叠的卡片?

我正在尝试检测纸牌,并使用python opencv将其转换为一张纸牌的鸟瞰图。我的代码在简单情况下工作正常,但我并没有停止在简单情况下,而是想尝试更复杂的情况。我在寻找正确的卡片轮廓时遇到问题。这是我尝试检测卡片并绘制轮廓的附件图像: 我的代码: path1 =“ F:\\计算机视觉程序\\图像\\cards4.jpeg”; g = cv2.imread(path1,0) im ..
发布时间:2020-10-09 00:57:47 Python