OpenCV 廣泛被應用在對目標進行辨識、測量、紀錄等,並更進一步的進行影像處理!
由於 OpenCV 本身就有提供讀取圖片檔的函數可用,讀取一般的圖片檔時,只要呼叫 cv2.imread 即可將圖片讀取進來。
以 cv2.imread 讀進來的資料,會儲存成一個 NumPy 陣列
此 NumPy 陣列的前兩個維度分別是圖片的高度與寬度,第三個維度則是圖片的 channel(RGB 彩色圖片的 channel 是 3,灰階圖片則為 1)
import cv2
img = cv2.imread('image.jpg') #讀取圖片
print(type(img))              #查看資料型態
print(img.shape)              #檢查這個 NumPy 陣列的大小
圖片讀取進來之後,使用 OpenCV 所提供的 cv2.imshow 來顯示圖片
cv2.imshow 的第一個參數為欲定的視窗名稱,第二個參數為要顯示的圖像~
cv2.imshow('My Image', img)  #顯示圖片
    #關閉所有視窗
cv2.waitKey(0)                      
cv2.destroyAllWindows()
   #關閉指定視窗
cv2.destroyWindows('My Image')   
cv2.waitKey 是用來等待與讀取使用者按下按鍵而關閉圖片視窗。
參數是等待時間(毫秒),若設為 0 就表示會等待使用者按下任何按鍵為止。
如果在程式中有許多的 OpenCV 視窗,而我們只要關閉
特定的視窗時,可以改用cv2.destroyWindow加上視窗名稱,關閉指定的視窗。

圖片來源: 朋友的狗狗憤怒吐舌瞬間><
注意視窗上的名稱 My Image 是自己在cv2.imshow定的喔~
使用 OpenCV 的 cv2.imwrite
可以使用 opencv 內建的函數 cvtColor 將圖片轉為灰階~
# 將圖片轉成灰階
gray = cv2.cvtColor(img,cv2.COLOR_RGB2GRAY)
cv2.imwrite('My Image.jpg', gray)  # 儲存圖檔 
假如原本的圖是 jpg 檔,也可以用cv2.imwrite存為其他格式
# 寫入不同圖檔格式 
cv2.imwrite('My Image.png', img) 
cv2.imwrite('My Image.tiff', img)

轉成灰階的狗勾!