OpenCV 仿射变换
生活随笔
收集整理的這篇文章主要介紹了
OpenCV 仿射变换
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
圖像的仿射變換涉及到圖像的形狀位置角度的變化,是深度學習預處理中常到的功能,仿射變換主要是對圖像的縮放,旋轉,翻轉和平移等操作的組合。
仿射變換:一個任意的仿射變換都能表示為 乘以一個矩陣 (線性變換) 接著再 加上一個向量 (平移).
可以用仿射變換來表示:
- 旋轉 (線性變換)
- 平移 (向量加)
- 縮放操作 (線性變換)
圖像的仿射變換,如下圖所示,圖1中的點1, 2 和 3 與圖二中三個點一一映射, 仍然形成三角形, 但形狀已經大大改變,通過這樣兩組三點(感興趣點)求出仿射變換, 接下來我們就能把仿射變換應用到圖像中所有的點中,就完成了圖像的仿射變換。
需要注意的是,對于圖像而言,寬度方向是x,高度方向是y,坐標的順序和圖像像素對應下標一致。所以原點的位置不是左下角而是右上角,y的方向也不是向上,而是向下。
在仿射變換中,原圖中所有的平行線在結果圖像中同樣平行。為了創建這個矩陣需要從原圖像中找到三個點以及他們在輸出圖像中的位置。然后cv2.getA?neTransform 會創建一個 2x3 的矩陣,最后這個矩陣會被傳給函數 cv2.warpA?ne。
getAffineTransform(InputArray src,InputArray DST)參數:
- InputArray src: 表示輸入的三個點
- InputArray dstL: 表示輸出的三個點
總結
以上是生活随笔為你收集整理的OpenCV 仿射变换的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: OpenCV 图像旋转
- 下一篇: OpenCV 腐蚀和膨胀