问题标签 [opencv-contour]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 使用 cv::findContours 从二进制掩码中查找最大区域对象失败,因为轮廓未闭合。如何预防?
我正在尝试根据视频源的形状特征(例如:面积、轮廓长度等)在视频源中执行暗(几乎是黑色)对象检测,但我在检测二进制掩码中的轮廓时遇到问题。
有时即使对象没有改变形状并且轮廓是从仅包含一个紧凑 blob 的简单蒙版派生的,轮廓也没有关闭(我可以看出,因为我使用 CV_FILLED 选项显示它,并且对于许多帧轮廓已填充),并且由于该计算区域实际上不可信(值降低到几个像素)。
我还注意到,当对象的轮廓未闭合时,长度大约是预期的 2 倍(这是有道理的)。
为什么简单斑点的轮廓有时会打开有时会关闭,我如何强制它们始终关闭?我已经尝试过凸包,并将轮廓的第一个点复制到它的末端,但它没有用。
我的方法的步骤如下:
- 将图像转换为灰度
- 执行阈值化、腐蚀和膨胀以消除噪声并改善“形状”
- 使用 Canny 边缘检测器只得到边缘
- 使用 findContours 获取等高线及其区域:
- 使用 arcLength 计算等高线和其他特征的长度。
opencv - Contour.exe中的Opencv未处理的异常
我在OpenCV中的代码运行良好,直到我想找到轮廓:
然后我不断收到以下错误:
“Contour.exe 中 0x773e3e28 处未处理的异常:Microsoft C++ 异常:cv::Exception at memory location 0x002ff3ac..”
您对此错误有任何想法吗?
我的完整代码如下。
谢谢
python - Getting error "FindContours support only 8uC1 and 32sC1 images in function cvStartFindContours"
I am trying to preform image processing techniques such as histogram backprojection and morphological filtering, but whenever I try to find a contour on the processed image, it keeps giving me an error:
I tried to find multiple ways to convert my processed image into either a 8uC1 or 32sC1, but have failed. Can anyone tell me how do I convert the image into a type 8uC1 or type 32sC1 so that I can find contours within the image?
Code:
c++ - findContours:OpenCV 已触发断点
我正在尝试在 OpenCV 中使用 findContours。当我调试我的程序时,一切正常,直到
我收到消息:
OpenCVFirst.exe 已触发断点
我已经读到这可能是因为链接了错误的 OpenCV 文件,但我最后将正确的文件与 d (用于调试)链接。
我的代码就像在官方 OpenCV 示例中一样:http: //docs.opencv.org/doc/tutorials/imgproc/shapeescriptors/find_contours/find_contours.html
我在带有 Windows 10 的 Visual Studio 2015 中使用 OpenCV 3.0。
c++ - OpenCV 将轮廓设置为 0
我正在使用 C++ 中的 OpenCV 进行编码。我从方法中得到
查找轮廓()
存储在“轮廓”中的值;数据类型是向量>。我想将轮廓 [i] 设置为 0;
contours[i]=0
不起作用,因为它需要一个点向量的向量而不是整数。有谁知道我如何“清除”它?谢谢!
python - 在 Python 中使用 OpenCV 访问轮廓边界内的像素值
我在 Python 2.7.9 上使用 OpenCV 3.0.0。我正在尝试跟踪具有静止背景的视频中的对象,并估计它的一些属性。由于图像中可能有多个移动对象,我希望能够区分它们并在视频的剩余帧中单独跟踪它们。
我认为可以做到这一点的一种方法是将图像转换为二进制,获取 blob 的轮廓(在本例中为被跟踪对象)并获取对象边界的坐标。然后我可以转到灰度图像中的这些边界坐标,获取由该边界包围的像素强度,并在其他帧中跟踪此颜色渐变/像素强度。这样,我可以将两个对象彼此分开,因此它们不会被视为下一帧中的新对象。
我有轮廓边界坐标,但我不知道如何检索该边界内的像素强度。有人可以帮我吗?
谢谢!
python - 使用 cv2 库在 python 中遍历轮廓的问题
我正在设计一种算法,我必须遍历图像中的每个轮廓并对其应用条件。我正在使用 cv2 库来执行此操作。代码如下:
错误是: