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)
原圖

水平翻轉

垂直翻轉

水平垂直翻轉

