2
我想將透視變換應用於使用OpenCV的整個圖像。爲此,我首先根據已選擇的點計算初始變換,然後嘗試變換圖像角並將其轉換爲最終的最佳變換。我得到的改造成功,但然後應用cv2.perspectiveTransform()函數總是拋出了這個錯誤:Python打開CV perspectiveTransform()
OpenCV Error: Assertion failed (scn + 1 == m.cols && (depth == CV_32F || depth == CV_64F)) in perspectiveTransform, file /tmp/opencv-PEaA0A/opencv-2.4.9/modules/core/src/matmul.cpp, line 1936
無論是numpy的陣列我提供的功能是float64 D型的,所以我推測錯誤來自SCN + 1 == m.cols。下面是我的代碼快照:
initTransform = cv2.getPerspectiveTransform(pointsIn,pointsOut)
imgCorners = np.array([[0,0],[self.image.size/float(self.image.shape[0]),0]],dtype=np.float64)
outputCorners = cv2.perspectiveTransform(corners,initTransform)
感謝您的幫助!
由於那絕對是我不清楚從文檔和每個其他時間這問題已經被問到,人們主要關注浮點部分的錯誤。 – user1549912
爲什麼'perspectiveTransform()'的輸入是'src [None,:,:]'不僅僅是'src'?每個元素都必須是2D矩陣而不是矢量? @ user1549912 – nn0p