透視變換
阿新 • • 發佈:2020-08-17
OpenCV提供了兩種圖片變換的方式:仿射變換和透視變換,兩者的區別很容易區分,
- 前者是將矩形的圖片變成平行四邊形
- 後者是將圖片變成梯形
透視變換(Perspective Transformation)是將成像投影到一個新的視平面(Viewing Plane),也稱作投影對映(Projective Mapping)。如圖所示
函式原型
OpenCV提供了warpPerspective( )函式來實現圖片的透視變換,只需要輸入梯形四個頂點的座標和目標畫布四個角的座標,即可自動完成轉換。核心程式碼只有兩行:首先讀取兩個座標陣列,計算變換矩陣;然後根據變換矩陣對原圖進行透視變換,並輸出到目標畫布。
cv2.getPerspectiveTransform(src, dst) → retval
引數說明
- src:源影象中待測矩形的四點座標
- sdt:目標影象中矩形的四點座標
返回由源影象中矩形到目標影象矩形變換的矩陣
注意!
原影象的四個座標順序應與目標影象中的四個座標一 一隨影,若都是順時針則都是順時針,若都是 Z 字型,則都是 Z 字型。
仿射變換
cv2.warpPerspective(src, M, dsize[, dst[, flags[, borderMode[, borderValue]]]]) → dst
引數為:
- src:輸入影象
- M:變換矩陣
- dsize:目標影象shape
- flags:插值方式,interpolation方法INTER_LINEAR或INTER_NEAREST
- borderMode:邊界補償方式,BORDER_CONSTANT or BORDER_REPLICATE
- borderValue:邊界補償大小,常值,預設為0