OpenCV圖像高寬及座標的轉換問題——cv2.resize()/cv2.warpAffine()

在計算機中,圖像是以矩陣的形式保存的。一張 寬×高×顏色通道=256×640×3 的圖片會保存在一個 640×256×3 的三維矩陣中。我們習慣的座標表示爲(x,y),在OpenCV中對圖像處理時的座標表示爲(y,x),即img.shape返回的是( 高度,寬度 )=(y,x)。然而cv2.resize(),cv2.warpAffine()函數的dstdsize參數輸入是 (寬度,高度),與img.shape相反。這裏一定要注意!!很容易出錯

img[50,10]也不是表示(x,y)爲(50,10)的那個像素,與img.shape的原理相同,它表示的也是(y,x),即表示第50列第10行的那個元素。

座標體系中的原點爲圖片的左上角,X軸爲圖像上邊界水平線;Y軸爲圖像左邊界垂直線。

在訪問圖像中點的值(x1,x2)時,x1並不是圖片中對應點的x軸座標,而是圖片中對應點的y座標。因此其訪問的結果其實是訪問image圖像中的(x2,x1)點。
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章