0
看看這個Python代碼:OpenCV的旋轉與warpAffine Python中導致錯誤邊境
degrees = 90
center = (24, 24)
img = np.ones((48,48,3)) * 255
mat = cv2.getRotationMatrix2D(center, degrees, 1.0)
img = cv2.warpAffine(img, mat, (48, 48))
我的期望是,3通道,完全飽和的,白方將被創建並存儲在IMG。之後,它會旋轉90度。將白色方塊旋轉90度應該會導致......難以區分的白色方塊。但是,當我:
plt.imshow(img)
plt.show(img)
我看到一個錯誤的黑色邊框:
有沒有什麼辦法讓warpAffine
工作正常,即沒有錯誤的邊界旋轉圖像?我試過以下修改無濟於事:
center = (23, 23)
center = (24, 23)
center = (23, 24)
center = (25, 25)
center = (24, 25)
center = (25, 24)
在旋轉之前顯示它時,它看起來像什麼?清潔?此外,如果您給它一個奇數的像素尺寸,並且實際上可以選取中心像素作爲中心,會發生什麼情況? –
旋轉之前,它是預期的乾淨的正方形。不幸的是,我無法改變圖像尺寸,因爲在上面的虛擬示例中它是一個白色圖像 - 但我的實際數據集是CT掃描,我試圖維護尺寸信息。 –
你試過旋轉約24.5,24.5嗎?它看起來像getRotationMatrix2D接受一個Point2f,所以它應該採用浮點數 –