问题标签 [convexity-defects]

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.

0 投票
0 回答
51 浏览

c++ - 去除二值图像的所有部分,除了有凸面缺陷的区域

我正在使用 OPENCV 3.2 并且正在处理二进制图像。这是我正在处理的图像。

在此处输入图像描述

我正在尝试去除除手部区域以外的所有东西(有凸面缺陷)。我尝试了斑点检测来检测斑点(手除外),但它没有显示任何东西。关于我应该如何进行的任何建议?斑点检测的示例代码是:

0 投票
1 回答
290 浏览

python - 用openCV(python)计算树突中的突起

我正在尝试使用 Python 和 OpenCV 计算通过荧光显微镜获得的小鼠树突中的树突棘(微小的突起)。

这是我开始的原始图像:

原始图片:

在此处输入图像描述

经过一些预处理(下面的代码),我得到了这些轮廓:

带轮廓的原始图片(白色):

在此处输入图像描述

我需要做的是识别所有的突起,得到这样的东西:

原始图片,轮廓为白色,预期计数为红色:

在此处输入图像描述

在对图像进行预处理(二值化、阈值化和降低噪声)之后,我打算做的是绘制轮廓并尝试在其中找到凸缺陷。问题的出现是因为一些“刺”(这些突起的技术名称)没有被识别,因为它们在同一个凸面缺陷中凸出在一起,低估了结果。在标记凸面缺陷时,有什么方法可以更“精确”吗?

轮廓以白色标记的原始图像。红点标记用我的代码识别的刺。绿点标记我仍然无法识别的刺:

在此处输入图像描述

我的 Python 代码:

我知道我的代码还有很多小问题要解决,但我认为最大的问题是这里介绍的问题。

谢谢你的帮助!并有一个好的

0 投票
1 回答
139 浏览

opencv - OpenCV 凸度缺陷绘图

在此处输入图像描述

你好。我有上面的图像并使用“findContours”功能。然后我使用“凸缺陷”函数来找到角点。

结果如下。

在此处输入图像描述

这段代码的问题是它找不到圆角。你找不到像下面这样的点。

在此处输入图像描述

这是我的代码

有人可以制作代码并找到红点吗?请帮忙。

现在我想从内部找到“凸性缺陷”,而不是像这张图片一样: 在此处输入图像描述

有人可以帮助我吗??

0 投票
1 回答
1932 浏览

python - Opencv:最大轮廓上的 convexityDefects 给出错误

我收到此错误:

当我尝试获取图像最大轮廓的凸度缺陷时。这是我正在使用的代码:

这是原图

这是脱粒的图像

这是最大轮廓上的凸包图像

0 投票
1 回答
2755 浏览

opencv - OpenCV中如何计算凸缺陷?

OpenCV函数convexityDefects()中用于计算轮廓凸度缺陷的算法是什么?

请描述和说明算法的高级操作及其输入和输出。

0 投票
1 回答
847 浏览

python - skimage或python中一般物体凹度的度量

我有一个代码,在某些时候我得到一组二维二进制 numpy 数组来表示主要是椭圆和圆的对象(细胞核)

我需要一个关于边缘有多粗糙(锯齿状)的度量。病理学文献中有核轮廓指数:周长/ sqrt(面积)这是有效的,但在我们的例子中,我们特别需要看看周长有多“粗糙”。椭圆和圆形的核轮廓指数是不同的,即使它们都有光滑的边缘。在我们的例子中,一个带有粗糙边缘的圆比一个带有光滑边缘的椭圆更重要

我考虑过使用此处解释的凸包:我认为在这种情况下,对于许多小凹度(这对我们来说是重要的情况)和一个主要的凹度(这不是那么重要)来说,度量是否相同,就像图片中一样以下。在此处输入图像描述

我也尝试过openCV,但是我发现很难从数学上理解那里实际发生的事情,它看起来非常像skimage凸面外壳,我更愿意坚持使用skimage

0 投票
1 回答
96 浏览

python - cv2.convexityDefects 将我踢出没有错误的循环

所以我一直在尝试找出轮廓及其外壳的缺陷。在查看了一些教程后,我遇到了类似的代码,但无论我如何实现它,这条线cv2.convexityDefects似乎让我跳出了循环,而不是显示视频。该程序在没有缺陷部分的情况下工作,并且我没有在缺陷部分中遇到任何错误,但它似乎只是结束了代码。

如果有人遇到过类似的问题或知道我哪里出错了,那将是一个很大的帮助。

0 投票
0 回答
829 浏览

python - 如何使用 OpenCV 检测手指?

我正在尝试使用OpenCVin检测图像中的手和手指python

这是我正在使用的代码:

我得到以下结果:

但是,我无法检测到所有手指(我有 5 个手指,我得到了 4 个用红色小圆圈表示的手指)。我不知道问题出在哪里,或者我应该如何检测所有手指。

我正在寻找接近此的结果:

任何帮助表示赞赏。

0 投票
0 回答
166 浏览

python - cv2 中的最佳拟合三角形

TLDR:我希望将三角形拟合到回旋镖形物体上,以检测其“头部”,可能使用 python 的opencv.


我有一组回旋镖形状的物体(见下图),它们的大小和内角各不相同。此外,有时“回旋镖”(与真正的回旋镖不同)可能不对称,一条腿比另一条腿长,并且腿上可能有缺陷和孔洞。

我可以准确地提取这些形状的轮廓,现在我正在尝试检测回旋镖所面对的方向(定义为“尖”边缘的方向,下图中用棕色圆点标记的方向)。

到目前为止,我的计划是使用opencv's 凸缺陷法检测内角,并从那里检测方向。然而,我的“回旋镖”并不完美——它们的腿上有时会出现孔洞和缺陷,这会混淆凸缺陷算法。

我的问题是:有没有办法找到适合回旋镖的最适合的三角形(很像最适合的椭圆)?

回旋镖

0 投票
1 回答
120 浏览

python - Python 的 cv2 凸缺陷距离太大?

更新:我自己计算的距离与返回的距离之间的比率似乎cv2正好是 256。这并不奇怪,因为查看他们的代码(此处为第 394 行)显示像素距离乘以 256。我只是不不明白为什么,我猜。


cv2.convexityDefects用来寻找某种形状的凸缺陷。我希望计算缺陷的深度(到凸包的距离,正如这里很好解释的那样)。

但是,我得到的距离太大而无法理解。我还尝试使用 cv2.convexityDefects 的起点和终点输出参数(参见下面的代码)手动计算距离,并获得更合理的结果。

计算的距离cv2.convexityDefects是,

在大约 500 像素宽的图像的上下文中,这完全没有意义。我究竟做错了什么?


更多信息:

这是我为此测试创建的图像(嗯,我的意思是艺术品),

凸缺陷的测试图像

这是代码:

这是上面代码的输出,当应用于测试图像时:

代码计算的凸点