圖像旋轉(zhuǎn) 本篇主要利用opencv的轉(zhuǎn)換函數(shù)warpAffine實現(xiàn)圖像的平移和旋轉(zhuǎn)。圖像旋轉(zhuǎn)即是根據(jù)某個中心點進(jìn)行旋轉(zhuǎn)。要進(jìn)行旋轉(zhuǎn),要找到中心點,要知道旋轉(zhuǎn)角度,opencv提供了函數(shù)cv2.getRotationMatrix2D來構(gòu)造變換矩陣,然后將其傳給warpAffine函數(shù)進(jìn)行變換。如下圖所示,左圖為原圖,右圖是旋轉(zhuǎn)45度后的圖。 img = cv2.imread('E:/image/le.jpg',0)center=((cols-1)/2,(rows-1)/2)M = cv2.getRotationMatrix2D(center,45,1)#定義旋轉(zhuǎn)矩陣,第一個參數(shù)是中心點,第二個參數(shù)是旋轉(zhuǎn)角度,第三個參數(shù)是縮放比例dst = cv2.warpAffine(img,M,(cols,rows),borderValue=200)#進(jìn)行變換,第一個參數(shù)是原圖,第二個參數(shù)是變換矩陣,第三個參數(shù)是變換后的圖像尺寸大小,第四個參數(shù)可省,為邊界填充值,默認(rèn)為0以下為旋轉(zhuǎn)90度和180度的圖,邊界未填充,故為黑色。 以下為旋轉(zhuǎn)-45度,-90度的結(jié)果圖。 此函數(shù)也可用于彩色圖像,如下圖所示,左圖為原圖,右圖為旋轉(zhuǎn)-45度后的圖,中心點都是原圖的中心點。 平移是對象位置的轉(zhuǎn)換,其實就是偏移(x,y)的值,可以構(gòu)造矩陣M,并應(yīng)用warpAffine函數(shù)進(jìn)行平移。 img = cv2.imread('E:/image/le.jpg',0)M = np.float32([[1,0,100],[0,1,50]])#定義變換矩陣dst = cv2.warpAffine(img,M,(cols,rows))#仿射變換函數(shù)進(jìn)行變換,第一個參數(shù)是原圖,第二個參數(shù)是變換矩陣,第三個是輸出圖像的大小
|