如何在不进行人工实验的情况下找到logPolar震级标度参数

时间:2019-01-22 13:44:04

标签: opencv

我想了解logPolar转换。我创建了一个带有红色圆圈red circle的图片,然后应用了openCV logPolar transformation。 这是代码:

import cv2
import numpy as np

r = 300
SOME_EXTRA_SPACE = 5
combinedImg = np.zeros((2 * r + SOME_EXTRA_SPACE, 2 * r + SOME_EXTRA_SPACE, 3), np.uint8)
cv2.circle(combinedImg,(r, r), r, (0,0,255), thickness = 3)
cv2.circle(combinedImg,(r, r), 3, (110,50,50), thickness = 10) # circle centr
polar = cv2.logPolar(combinedImg, (r , r), r, cv2.WARP_FILL_OUTLIERS )

cv2.imshow("origina image", combinedImg)
cv2.imshow("polar", polar)
cv2.waitKey();cv2.destroyAllWindows()

因此,我希望圆圈最终会变成一条红线。相反,我只有一个变形的圆心: transformed circle center

,如果我将logPolar的M –震级标度参数更改为50而不是半径,则它按预期工作。 enter image description here为什么M不等于半径?如何在不进行人工实验的情况下找到它?拥有一个圆的半径还不够吗?

0 个答案:

没有答案