2015-12-01 54 views
0

我正在研究一个应用程序,该应用程序将比较希望匹配面部的直方图。 该应用程序允许用户拍照,选择图像中的几个关键点,然后应用程序围绕这些点绘制圆圈。然后使用OpenCV Hough Circle Transform函数检测圆。到目前为止,该应用程序运行良好。检测形状并创建直方图

我现在需要实施是两个选项之一:

  1. 检测圆和创建单独的直方图区域中的每个圆圈内。

  2. 检测圆圈并遮住圆周的区域并创建一个直方图。

我倾向于方法2,但我不确定在检测到圆后区域周围的区域/颜色/颜色如何涂抹。任何输入将不胜感激。谢谢。

回答

0

为什么不创建新图像并将圆圈的内容复制到原始图像中的圆圈外部?

另一点是直方图与翻译无关。因此,将圆圈复制到新图像中的确切位置并不重要。

如果我没有回答您的问题,或者您现在还有其他问题,请澄清一下。

+0

谢谢龙猫。你的第二点很清楚。我喜欢你的想法只是复制重要的地区,我不太清楚如何实现这一点。我知道我可以使用Canvas和Paint类剪切/剪裁位图,但指定要剪切的独特路径似乎有点遥不可及。 – Rob

+0

如果用户选择了这些点,则可以使用一个函数来计算某个半径处该点周围的一个圆内的所有点。算法如下: 1.围绕这个点取一个正方形,点的中心点和圆的直径等于正方形的边。 2.对于此平方中的每个点,计算距中心的距离。移除距离大于圆弧半径的点,并将剩余的点复制到新图像。 cv :: Mat是一个很棒的课程,你可以做很多事情。你会喜欢你需要的大部分功能。 – Totoro

+0

谢谢龙猫。由于时间限制,我采用了更简单的(尽管不是很准确)方法。我正在创建一个大矩形来包围输入触摸的区域,并用canvas,clipRect()剪切该矩形。现在我认为这已经足够了,但为了更准确,我可能会稍后再细化它。我很感谢你的时间,谢谢你。 – Rob