例子:
我想检测例如粉红色正方形,在第二种情况下钢笔。其他示例可能是带有一些孔,星星等的正方形。正如我说的,我想做一些单方面的事情。感谢我提出任何建议,因为我想测试尽可能多的方法。
#1 楼
您是否需要担心轮廓之间的比例差异?如果不是,您可以简单地找到每个轮廓的质心,然后通过将一个轮廓减去另一个轮廓来计算位移。然后可以计算轮廓的主轴,并找到它们之间的旋转角度。如果涉及缩放,则可以通过获取相应主轴的比率来计算比例因子。
评论
$ \ begingroup $
是的,规模也可以不同。我还考虑过类似opencv的freeman链,制作每个轮廓的freeman链,然后进行比较,并尝试以某种方式找到translaton,但是我无法为此找到一些好的算法。
$ \ endgroup $
– krzych
2011-11-23 19:29
$ \ begingroup $
与创建最小旋转边界框并获取其旋转和位移相同。尝试了这种方法,结果令人不满意。所以我认为这种方法根本不好。
$ \ endgroup $
– krzych
2011年11月24日在8:06
$ \ begingroup $
您能否更具体地说明为什么它不起作用?轮廓仅通过平移,旋转和缩放而相关,还是可以其他方式变形?一些图片确实会有所帮助。如果需要处理非仿射变换或随机噪声,则可以尝试使用形状上下文。让我知道,我可以指出一些论文。
$ \ endgroup $
–迪马
2011年11月25日在22:08
$ \ begingroup $
它们仅通过平移,旋转和缩放相关,变形与不同照片上的轮廓检测几乎没有关系。塑造背景?你能扩大这个范围吗?
$ \ endgroup $
– krzych
2011-11-26 10:11
$ \ begingroup $
@kzych看来您最大的问题是边缘检测中的噪声。您如何找到最小旋转盒?我仍然不清楚为什么这行不通。形状上下文是表示轮廓的一种方式。详细信息在这里:en.wikipedia.org/wiki/Shape_context
$ \ endgroup $
–迪马
2011-11-30 17:34
#2 楼
如果您不必担心比例或投影失真,链码可能会有所帮助。如果您具有形状大致相同且比例相同的链码,则可以找到具有一维FFT相位相关性的翻译http://en.wikipedia.org/wiki/Phase_correlation
如果您必须考虑射影失真,也可以考虑使用特征点(例如拐角)代替轮廓的可能性。
评论
$ \ begingroup $
关于如何构建良好链代码的任何建议?也许来自OpenCv的东西(据我所知它只有自由人链)?现在,我正在使用每个轮廓点并计算与相邻点的x轴的角度来构建链式代码,但是也许有更好的主意?如果您参考了有关链条的任何优秀论文,将不胜感激。
$ \ endgroup $
– krzych
2011年11月28日在9:13
#3 楼
在问题中,您说的是正如我说的,我想做些全盘的事
,但恐怕很难找到一个“通用”解决方案。
您可以购买商业上可用的模式定位器软件并将其集成到您的应用程序中,通常它们在各种应用程序中的表现都很好。只是为了给您一个主意,这是此类产品的参考手册http://www.lmi3d.com/sites/default/files/support/4.2.0.70-hexsight_user_guide.pdf
您可以针对某些特定情况(例如图像中的笔)开发临时解决方案。
否则,您可以从植根于计算几何学的非常基础的基础开始研究问题(http ://www.cs.sunysb.edu/~algorith/files/shape-similarity.shtml),其中您的“轮廓”称为“多边形”,其内容如下:
M。 de Berg,O。Devillers,M。Kreveld,O。Schwarzkopf和M. Teillaud。
计算平移下两个凸多边形的最大重叠。
理论计算机科学,1998:31:613–628。
和
H。安(Ahn),张(O.Cheong),朴(C.Park),新(C.Shin)和维尼隆(A.Vigneron)。
在刚性运动下最大化两个平面凸集的重叠。计算几何:理论与应用,37:3–15,2007年。
以与MVTec合作的Markus Ulrich的“图像中复合物的分层实时识别”结尾,另一家销售对象识别软件工具的软件公司。
评论
图片会在这里有所帮助我想做一些通用的功能。因此,测试图片可以是任何东西。简单形状的元素为矩形,或者更复杂的形状。
好吧,您不能将单一方法适合所有情况。实用的方法取决于对比度范围,噪声估计,背景和形状本身-它的平滑度,拓扑结构等。这就是为什么图片会有所帮助的原因。