--- tags: 機器視覺, OpenCV, 勇哥, Yungger, Python --- :::info # Python+OpenCV : 第三課 圖像 ::: :::warning ### 目錄 [TOC] ::: --- ## <font color="GREEN">讀取</font> ```python # 三原色的彩色圖片,而忽略透明度的 channel img = cv2.imread(img_input, cv.IMREAD_COLOR) # 灰階格式圖片 img = cv2.imread(img_input, cv.IMREAD_GRAYSCALE) # 讀取圖片中所有的 channels,包含透明度的 channel。 img = cv2.imread(img_input, cv.IMREAD_UNCHANGED) ``` ## <font color="GREEN">展示</font> ```python # 建立一個展示視窗, 且可以自由縮放大小 cv2.namedWindow('window name', cv.WINDOW_NORMAL) # Tips: 若使用 Mac 開發, 卻發現執行後展示視窗一直都躲在編輯器背後看不見時, 可增加此行 if os.name != 'nt': os.system('''/usr/bin/osascript -e 'tell app "Finder" to set frontmost of process "python" to true' ''') # 開啟視窗, 並載入圖片。在預設的狀況下,以 cv.imshow 所會依據圖片來自動調整大小 cv2.imshow('window name', img) # 等待時間(毫秒),若設定為 0 就表示持續等待至使用者按下按鍵為止 cv2.waitKey(0) # 按下任意鍵則關閉所有或指定的視窗 cv2.destroyAllWindows() # 或 cv.destroyWindow('window name') ``` :::info ![](https://i.imgur.com/RbxApCd.jpg) ![](https://i.imgur.com/JZI8Y04.jpg) ![](https://i.imgur.com/S6Skm8h.jpg) ![](https://i.imgur.com/SSnGdxP.jpg) ![](https://i.imgur.com/2a4LxjH.jpg) ::: ## <font color="GREEN">寫入</font> ```python # 寫入不同圖檔格式 cv2.imwrite('output.jpg', img) cv2.imwrite('output.png', img) cv2.imwrite('output.tiff', img) ``` ## <font color="GREEN">轉換</font> ```python # 改變大小 cv2.resize(img, (w, h)) # 裁剪圖片 img = img[y:y+h, x:x+w] # 鏡射圖片:mirror = 0:上下, 1:左右, -1:Flip Both cv2.flip(img, mirror) # 旋轉圖片 M = cv2.getRotationMatrix2D(center, angle, scale) cv2.warpAffine(img, M, (w, h)) ``` ![](https://i.imgur.com/wjsqFLc.jpg) ![](https://i.imgur.com/mDXd2oc.jpg) ![](https://i.imgur.com/Q9Mde2n.jpg) ![](https://i.imgur.com/NoJqcm6.jpg) --- :::success #### 如果覺得此文對您有幫助, 也願意鼓勵勇哥的繼續創作, 點此 [加油一下](https://www.buymeacoffee.com/yungger) 😘 😘 !! :::