用少量可用点裁剪感兴趣的区域

Posted

技术标签:

【中文标题】用少量可用点裁剪感兴趣的区域【英文标题】:Crop the region of interest with few points available 【发布时间】:2014-01-22 15:32:48 【问题描述】:

我用过凸包和凸面缺陷,发现手上的点如下图。

有了以上的点信息,我如何裁剪标记为红色(Knuckle)的区域,如下图所示。

我的目的是检测手中的指节。

注意:绘制的绿色区域使用“绘制轮廓”。是否可以使用该区域来裁剪红色标记区域(指关节)。如何裁剪这些区域。

更新(2014 年 2 月 26 日):

我找到了如下轮廓点。有了以下信息,就可以找到指关节区域。有没有什么方法可以利用积分找到。

【问题讨论】:

是的,这是可能的,但不知何故,我怀疑这就是您正在寻找的答案。你到底想回答什么? @Nallath 我想知道这些可用信息,如何裁剪标记为红色的区域。我参与了 FKP(指关节指纹)识别。 查看边缘图并定位边缘密集的区域。或应用 sobel 滤波器 (dx) 来检测垂直边缘的位置。 你的问题很混乱。如果您知道以红色标记的区域的轮廓,那么裁剪该区域是微不足道的。您应该改写您的问题“在检测到手部轮廓后,如何检测手指关节区域?” @CanberkBaci 谢谢,我能得到一些例子和详细的链接,这对我真的很有帮助。 【参考方案1】:

既然你已经知道红色的位置,你只想裁剪这个区域?

这很简单,您只需要设置一个 ROI(感兴趣区域)并将该区域复制到另一个图像。像这样(在伪代码中,因为我没有打开并运行一个开放的 CV 项目)

img1.ROI = varRedRectangle
img1.copyTo(img2)
img1.ROI = null;

如果您的问题是如何检测红色部分,我认为您需要像图像识别领域的任何人一样做很多工作,因为有很多方法可以做到,这里没有人会为您找到它们。

希望对你有帮助!

【讨论】:

我认为 OP 想要检测手指关节(红色 roi)的区域。他没有很好地表达他的问题。 抱歉@Alex 是对的。我需要检测我现在没有的红色区域(指关节)。 这更像是一个检测问题,而不是识别问题。 好的!抱歉,在我写下我的答案时,这个问题还不清楚。非常令人不安的是,有人给我打了 -1 分,因为我试图帮助提供最少的信息……我无法帮助你检测指关节。【参考方案2】:

如果您的想法是检测那些红色区域,您可以使用以下简单的想法。

    获取边缘图像并去除绿色边界之外的边缘。

    应用水平直方图来分离条带。

    在每个垂直直方图中,定位具有峰值邻域内的值的 bin。 (让我们称之为峰值箱) 峰值区间的最长连续序列应该给出答案。

【讨论】:

以上是关于用少量可用点裁剪感兴趣的区域的主要内容,如果未能解决你的问题,请参考以下文章

自动矢量化感兴趣区域(裁剪)

如何在 MATLAB 中对感兴趣区域进行自动裁剪?

如何使用 Viola Jones 算法将人脸检测为感兴趣区域并将其裁剪到矩形框?

OpenCv 裁剪问题

OpenCV-C++选择提取感兴趣区域(ROI区域)附用鼠标选取ROI区域的代码

OpenCV实战——图像感兴趣区域