cv2.warpAffine 參數詳解

本文連接:https://blog.csdn.net/qq878594585/article/details/81838260
本文爲做者原創文章,未經贊成嚴禁轉載!python

opencv中的仿射變換在python中的應用並未發現有細緻的講解,函數cv2.warpAffine的參數也模糊不清,今天和你們分享一下參數的功能和具體效果,以下:c++

官方給出的參數爲:函數

cv2.warpAffine(src, M, dsize[, dst[, flags[, borderMode[, borderValue]]]]) → dst.net

其中:blog

src - 輸入圖像。
M - 變換矩陣。
dsize - 輸出圖像的大小。
flags - 插值方法的組合(int 類型!)
borderMode - 邊界像素模式(int 類型!)
borderValue - (重點!)邊界填充值; 默認狀況下,它爲0。圖片

上述參數中:M做爲仿射變換矩陣,通常反映平移或旋轉的關係,爲InputArray類型的2×3的變換矩陣。opencv

flages表示插值方式,默認爲 flags=cv2.INTER_LINEAR,表示線性插值,此外還有:cv2.INTER_NEAREST(最近鄰插值)   cv2.INTER_AREA (區域插值)  cv2.INTER_CUBIC(三次樣條插值)    cv2.INTER_LANCZOS4(Lanczos插值)class

平常進行仿射變換時,在只設置前三個參數的狀況下,如 cv2.warpAffine(img,M,(rows,cols))能夠實現基本的仿射變換效果,但能夠出現「黑邊」現象,如圖:方法

 

這對後續的處理每每形成很大的困擾,第六個參數能夠選擇填充的顏色,默認爲黑色。在python中設置warpAffine的參數與c++中有所不一樣,必須指明參數的名稱,具體以下:im

c++中:warpAffine(src,img,M,Size(a,b),1,0,Scalar(255,255,255));

python中:

cv2.warpAffine(img,M,(rows,cols),flags=cv2.INTER_,borderMode=cv2.BORDER_REFLECT,borderValue=(255,255,255))

在python 中有一個好處是沒必要按順序設置,直接指明所設置的參數便可,如將上述圖片邊界區域填充爲白色:

cv2.warpAffine(img,M,(lengh,lengh),borderValue=(255,255,255))
效果圖:

————————————————版權聲明:本文爲CSDN博主「gqcngu」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處連接及本聲明。原文連接:https://blog.csdn.net/qq878594585/article/details/81838260

相關文章
相關標籤/搜索