问题标签 [opencv-drawcontour]
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++ - 如何找到检测到的图像的绘制轮廓点?
我想在像背景减法,findcontour,drawcontour这样的操作之后找到在对象上绘制的轮廓点。我的物体在移动,所以我的轮廓也不合适。我想找到在对象上绘制的轮廓上的最大和最小点。谁能告诉我怎么找?我的对象是移动的汽车,相机视图位于顶部。
python - 创建轮廓列表
我有 (x,y) 点用于轮廓线 ( cnt
)。通过将数据结构与findContours
返回值 ( contoure
) 的数据结构进行比较,我创建了看起来几乎相同的列表。
cnt
是 3D 数组contoure
的列表,并且是 3D 数组的列表。
我得到以下结果:
我不明白为什么我得到“元组索引超出范围” np.size(contoure,1)
(注意这contoure[i]
是 3D 数组!)但没有错误np.size(cnt,1)
以及为什么np.size(cnt) != np.size(contoure)
。
我认为 drawContourscnt
由于这种差异而无法使用,但我不知道为什么会发生这种情况。
编辑:轮廓是由 findContours() 调用创建的。我不确切知道cnt是如何创建的,因为我的朋友编写了这部分代码,我只得到以下形式的结果:all_cnt:
其中 x1,y1 是描述第一个轮廓的 n 对。比我使用以下代码:
java - OpenCV drawContours 问题
我将 OpenCV (Java) 与 Eclipse Luna 一起使用。我遇到了 drawContours 方法的问题。该代码没有错误,但是当我运行它时,图像会加载,但没有可见的计数。
图片类:
}
LoadImage 类(不是很重要,只是做一个框架来显示图像):
这可能是一个简单的修复,但我找不到任何关于它的东西。
opencv - 当我只绘制更大的轮廓对象时,Python Opencv drawContours 失败
我正在尝试绘制最大物体的轮廓。
首先,我将展示一个绘制所有轮廓的图像:
为了找到最大的对象,我使用了这段代码:
结果是下一个:
为什么轮廓没有连接?
提前致谢。
c++ - OpenCV 3.0.0 MSER 二进制掩码
我正在尝试在 OpenCV 3.0.0 beta 中使用 MSER 算法从图像中提取文本区域。最后,我需要一个带有检测到的 MSER 区域的二进制掩码,但该算法仅提供轮廓。我试图绘制这些轮廓,但没有得到预期的结果。
这是我使用的代码:
这是结果:
问题是非凸区域被穿过实际 MSER 区域的线填充。我只想要从 MATLAB 获得的区域中的像素列表detectMSERFeatures
:
任何想法如何从轮廓中获取填充区域(或以其他方式获取 MSER 掩码)?
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:
android - 尝试使用opencv从图像中检测蓝色,并得到意想不到的结果
我是 OpenCV4Android 的新手。这是我编写的一些代码,用于检测图像中的蓝色斑点。在以下图片中,图片 1 在我的笔记本电脑中。我运行应用程序,OpenCV 相机捕获的帧是图像 2。您可以查看代码以查看其余图像是什么。(正如您在代码中看到的,所有图像都保存在 SD 卡中。)
我有以下问题:。
为什么在相机捕获的 rgba 帧中,浅蓝色斑点的颜色变成了浅黄色(如图 2 所示)。
boundingRect
我围绕最大的蓝色 blob创建了一个,但随后ROI
通过rgbaFrame.submat(detectedBlobRoi)
. 但你可以在最后一张图片中看到,它看起来就像几个灰色像素。我期待蓝色球体与图像的其余部分分开。
我错过了什么或做错了什么?
代码:
- 电脑中的原始图像,这是通过将手机的摄像头放在笔记本电脑屏幕前拍摄的。
- rgbaFrame.jpg
- hsvImage.jpg
- 扩张图像.jpg
- 蒙面垫.jpg
- 检测到的BlobRgba.jpg
编辑:
我刚刚使用Core.inRange(hsvImage, new Scalar(0,50,40), new Scalar(10,255,255), maskedImage);//3, 217, 225 --- 6, 85.09, 88.24 ...... 3 219 255
了,我通过给它一个自定义的红色 HSV 值来捕获网站 colorizer.org 的截图,即对于 OpenCV 红色Scalar(3, 217, 255)
(它落在给定inRange
函数中设置的范围内,我将通道值缩放到colorizer.org 的比例,即 H=0-360,S=0-100,V=0-100,通过将 H 值乘以 2,并将 S 和 V 值除以 255 并乘以 100。这给出了我6, 85.09, 88.24
在网站上设置,并截取了屏幕截图(下图中的第一个)。
- 原始截图,我捕捉到了这一帧。
- rgbaFrame.jpg
- hsvImage.jpg
- 蒙面图像.jpg
- 膨胀垫.jpg
- 检测到的BlobRgba.jpg
重要的:
当我触摸 rgbaFrame 内部时(即在onTouch
方法内部调用它),给定的方法实际上是在我的测试应用程序中调用的。我还使用以下代码打印到我触摸过的彩色 blobTextView
的Hue
、Saturation
和值。当我运行这个应用程序时,我触摸了红色的 blob,并得到了以下值:.Value
Hue:3, Saturation:219, Value:255
public boolean onTouch(View v, MotionEvent motionEvent) {detectColoredBlob(); int cols = rgbaFrame.cols(); int 行 = rgbaFrame.rows();
}
android - 字段/常量 CV_FILLED 属于哪个 OpenCV4Android 类?
CV_FILLED
该字段属于哪个 OpenCV4Android 类?我无法从我的谷歌搜索中找到。
它用作该方法的第 5 个参数的值Imgproc.drawContours()
。从文档中:
厚度- 绘制轮廓线的粗细。如果它是负数(例如,thickness=CV_FILLED),则绘制轮廓内部。
我需要使用它,但在 Android/Java 中,我不能像那样使用它,我需要使用它所属的类的名称和点运算符,比如theClass.CV_FILLED
. 如果我尝试使用 just CV_FILLED
,编译器会抱怨,“CV_FILLED 无法解析为变量”。