我手头有一个问题,我需要使用图像处理来检测/预测铰链点或旋转点轴的坐标。图片如下:
我使用了一种方法,首先在配置文件中跟踪 RoI 中一些特征点围绕默认铰链坐标(手动输入)的圆周运动(弧形)。这些跟踪点的这种圆周运动发生在穿过铰链点的垂直轴周围。现在,我从它们的初始位置开始跟踪这些点,直到连杆与 y 轴成特定角度 (15°/20°),我在同一点的这些不同位置(开始和结束位置)之间绘制正割线并绘制它的垂直平分线理想地穿过(同心)圆的中心,这是理想的铰接点。
Eg:
y_intercepts calculated for each point
H0 (322, 42)
H1 (322, 64) (within tolerance, closest to GT)
H2 (322, 48)
H_avg (322,52)
H_groundtruth (x,y): (322, 61)
我们需要 +/- 3 像素的精度或公差。 现在,我们在这个理想场景中面临的实际工作问题是:
不同的跟踪点给出不同的潜在铰链点(垂直黄线上的不同点),(其中很少有非常接近地面实况(黄色圆圈)),但它们的加权/平均值(大绿色圆圈)偏离了标记。坦率地说,这是一个太多的问题,我们确实最接近地面实况,但我们不确定这些点中的哪一个最接近,因为我们不使用默认的 Hook 坐标(手动输入) 来自配置文件。
最佳答案
一种解决方案可能是使用已经实现的图像注册框架,例如 elastix。如果将其配置为刚性配准,则可以获得变换矩阵,从而获得旋转中心。
这里的问题是只有图像的一部分在移动。在进行配准之前,我会通过从两幅图像的减法计算掩码来简单地掩蔽感兴趣区域,以仅保留实际移动的部分。
这种方法可以获得亚像素精度。您也可以对多个角度重复它并对结果进行平均。除了求平均值,您还可以使用 RANSAC algorithm了解哪些铰链点关闭(异常值)并排除它们。
Here is an example how to do a simple rigid transformation with elastix.
希望对您有所帮助!
关于opencv - 如何使用图像处理从俯 View 中找到铰链点或旋转轴点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56982880/