与openCV完美的单应性。霍夫?

时间:2018-02-05 06:31:08

标签: opencv homography

对于openCV项目,我需要从描述符匹配中找到“完美”的单应性。我推动了参数:很多角落,反转门槛很低......

它很接近,但我需要几乎像素完美的单应性。

我将标记命名为我正在寻找的图像,查询包含标记的图像。

我的想法是优化查询图像中标记的4个角位置。然后从这些精致的4个角落重新计算单应性。

我正在考虑使用霍夫来检测线路交叉点。所以我得到了确实很好的候选人。

现在我需要一个分数函数来评估哪些候选者是“最好的”。这就是我试过的

1 / - 让我们叫H同性恋 - test =查询+ H *标记。因此,如果我的单应性是“完美的”,那么测试将与查询相同(但对于阴影......)。

2 /然后我像下面一样幼稚地计算“差异”。我将绝对差值相加然后除以面积(否则越小越好)。不可靠......我给了这些金额更多的权重,但仍然失败了。

对我来说这似乎是一个好主意,但现在这是一个史诗般的失败:差异并没有帮助找到“更好”的角落。有什么想法吗?

非常感谢,

迈克尔

def diffImageScore(testImage,workingImage, queryPersp):
height,width,d = testImage.shape
height2,width2,d2 = workingImage.shape
area=quadrilatereArea(queryPersp)*1.0
score=0
height, width, depth = testImage.shape
img1Gray= cv2.cvtColor(cv2.blur(testImage,(3,3)), cv2.COLOR_BGR2GRAY)
img2Gray= cv2.cvtColor(cv2.blur(workingImage,(3,3)), cv2.COLOR_BGR2GRAY)
for i in range(0, height): 
    for j in range(0, width):
        s1=abs(int(img1Gray[i,j]) -int(img2Gray[i,j] )) 
        s1=pow(s1,3)
        score+=s1
return score/area

0 个答案:

没有答案