先安裝opencv,在CMD 命令列下執行
python -m pip install opencv_python
執行第一支opencv 程式,讀圖及展示。利用imread()來取得一張圖片的numpy陣列,Opencv 的格式為Height x Width x Chanel。通道順序為BGR。cv2.waitKey(0)表案件後0秒執行
import cv2
image = cv2.imread('D:\pics\lena.jpg')
print(f'height:{image.shape[0]} pixel')
print(f'width:{image.shape[1]} pixel')
print(f'channel:{image.shape[2]} ')
cv2.imshow("image",image)
cv2.waitKey(0)
讀取灰階圖,在imread的第2個參數設為 cv2.IMREAD_GRAYSCALE
第2個參數可用的選項有三種:
cv2.IMREAD_COLOR
此為預設值,這種格式會讀取 RGB 三個 channels 的彩色圖片,而忽略透明度的 channel。
cv2.IMREAD_GRAYSCALE
以灰階的格式來讀取圖片。
cv2.IMREAD_UNCHANGED
讀取圖片中所有的 channels,包含透明度的 channel。
import cv2
image = cv2.imread('D:\pics\lena.jpg',cv2.IMREAD_GRAYSCALE)
print(f'height:{image.shape[0]} pixel')
print(f'width:{image.shape[1]} pixel')
cv2.imshow("image",image)
cv2.waitKey(0)
BGR2RGB:
OpenCV 讀取進來的圖片會以 BGR 的方式儲存三個顏色的 channel,如果直接把 OpenCV 讀入的圖片放進 Matplotlib 來顯示,就會出現類似這樣的顏色錯誤問題
import cv2
from matplotlib import pyplot as plt
image = cv2.imread('D:\\pics\\lena.jpg')
print(f'height:{image.shape[0]} pixel')
print(f'width:{image.shape[1]} pixel')
plt.imshow(image)
plt.show()
透過 cv2.cvtColor(image, cv2.COLOR_BGR2RGB) 就可以將圖片還原為RGB了
import cv2
from matplotlib import pyplot as plt
image = cv2.imread('D:\\pics\\lena.jpg')
img_rgb = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
plt.imshow(img_rgb)
plt.show()