1. 程式人生 > >OpenCV(Python)學習筆記(One):幾何變換之對影象的旋轉

OpenCV(Python)學習筆記(One):幾何變換之對影象的旋轉

 最近學習中會用到OpenCV,感覺OpenCV簡單且功能強大,Python語言也簡單易用,於是就學了Python版OpenCV。裡面講的比較簡單,就先從簡單的入手吧。

因為已經學習一段時間了,所以文章並不是按照OpenCV的順序來寫的,我會慢慢補齊以前學過的一些例子。

都是些簡單的小栗子,大神勿噴,也懇請大家多多提意見交流。

下面的例子實現對圖片的旋轉,一些輸入輸出只是為了使用友好,刪除也沒有任何影響的。

def turnImage(imgpath,outpath):
    print('***************The start****************')
    imgname = imgpath.split('/')[-1]
    name, dot = imgname.split('.')[0], imgname.split('.')[1]
    basename = outpath + name + '_' + dot + '_TurnImage_30'
    img = cv2.imread(imgpath,0)
    rows, cols = img.shape
    
    #這裡的第一個引數為旋轉中心,第二個為旋轉角度,第三個為旋轉後的縮放因子
    #可以通過設定旋轉中心,縮放因子,以及視窗大小來防止旋轉超出邊界的問題
    M = cv2.getRotationMatrix2D((cols/2,rows/2),30,0.6)
    
    #這裡第三個引數是輸出影象的尺寸中心
    dst = cv2.warpAffine(img,M,(2*cols,2*rows))
    cv2.imshow('Turn Inage',dst)#顯示旋轉後的圖片
    cv2.imshow(' Inage',img)
    imgname_out1 =basename + 'img.jpg'
    imgname_out2 =basename + 'dst.jpg'
    cv2.imwrite(imgname_out1,img)#原圖儲存
    cv2.imwrite(imgname_out2,dst)#儲存旋轉後的結果
    cv2.waitKey(2000)#等待2000毫秒
    cv2.destroyAllWindows()#關閉所有顯示視窗
    print('***************The end***************')
    

imgpath = '../testimage/football.jpg'#圖片路徑
outpath = 'Geometric_change/'#結果儲存路徑
turnImage(imgpath,outpath)

 

原圖
旋轉後的圖片

檔案組織:

原圖
原圖

|--OpenCV

    |--code 程式碼所在資料夾

        |--Geometric_change.py 原始碼檔案

        |--Geometric_change 儲存結果的資料夾

    |--testimage 載入圖片的資料夾