Python opencv numpy旋轉圖片


python旋轉圖片

背景:

在圖像處理中,有的時候會有對圖片進行角度旋轉的處理,尤其是在計算機視覺中對於圖像擴充,旋轉角度擴充圖片是一種常見的處理。這種旋轉圖片的應用場景也比較多,比如用戶上傳圖片是豎着的時候,不好進行處理,也需要對其進行旋轉,以便后續算法處理。常見的旋轉處理有兩種方式,一種是轉化為numpy矩陣后,對numpy矩陣進行處理,另外一種是使用opencv自帶的函數進行各種變換處理,以實現旋轉角度的結果。

 

原始圖像

 

代碼

def totateClockWise90ByNumpy(img_file):  # np.rot90(img, 1) 順時針旋轉90度
    img = cv2.imread(img_file,cv2.IMREAD_UNCHANGED)
    # np.rot90(img, 1) 順時針旋轉90度
    # np.rot90(img, 2) 順時針旋轉180度
    # np.rot90(img, 3) 順時針旋轉270度

    img90 = np.rot90(img, 3)
    cv2.imwrite("/tmp/123_3.png",img90)
    cv2.imshow("rotate", img90)
    cv2.waitKey(0)
    return img90


totateClockWise90ByNumpy('/tmp/lena2.png')

 

旋轉90度

 

 

旋轉180度

 

 

 

旋轉270度

 

 

 

圖像反轉

  cv2.flip : 對圖像矩陣進行翻轉處理,參數可以設置為1,0,-1,分別對應着水平翻轉、垂直翻轉、水平垂直翻轉。

img = cv2.imread(origin_img_path)
img_flip = cv2.flip(img, 1)
cv2.imshow('flip', img_flip)
cv2.waitKey(0)

 

原圖

 

 

 

 

水平翻轉

 

 

 

垂直翻轉

 

 

 水平垂直翻轉

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM