我想了解logPolar转换。我创建了一个带有红色圆圈的图片,然后应用了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()
因此,我希望圆圈最终会变成一条红线。相反,我只有一个变形的圆心:
,如果我将logPolar的M –震级标度参数更改为50而不是半径,则它按预期工作。 为什么M不等于半径?如何在不进行人工实验的情况下找到它?拥有一个圆的半径还不够吗?