指令:pip install opencv-python
安裝完成
讀取圖檔
1.1 讀取圖片
OpenCV內建函數
程式碼
image_path = './over_brain.jpg'
image = cv2.imread(image_path)
讀取一般路徑圖片
讀取中文路徑圖片(出現cv2.error)
Numpy讀取中文路徑圖片,並轉換為BGR(因OpenCV預設畫素排列順序為BGR)
程式碼
image_path = './大腦已超載.jpg'
image = cv2.imdecode(np.fromfile(image_path, dtype=np.uint8), -1)
image = cv2.cvtColor(cv_img, cv2.COLOR_BGRA2BGR)
執行結果
1.2 讀取影片
程式碼
import cv2
video_path = './road.mp4'
cap = cv2.VideoCapture(video_path)
# frame_rate代表每幾幀擷取一次
frame_rate = 3
count = 1
while(True):
ret, frame = cap.read()
if ret:
if count % frame_rate == 0:
print("擷取影片第:" + str(count) + " 幀")
# 將擷取圖片縮小,便於顯示
resize_img = cv2.resize(frame, (540, 960), interpolation=cv2.INTER_AREA)
cv2.imshow('frame', resize_img)
cv2.waitKey(0)
count += 1
else:
pass
cap.release()
cv2.destroyAllWindows()
print('程式執行結束')
讀取結果
擷取影片第3幀
擷取影片第6幀
儲存圖檔
2.1 OpenCV內建函數
程式碼
import cv2
image_path = './over_brain.jpg'
image = cv2.imread(image_path)
cv2.imwrite('./over_brain2.jpg', image)
儲存一般路徑圖片
儲存中文路徑圖片(未成功儲存圖片)
2.2 Numpy儲存中文路徑圖片
程式碼
import cv2
image_path = './大腦已超載.jpg'
image = cv2.imdecode(np.fromfile(image_path, dtype=np.uint8), -1)
image = cv2.cvtColor(image, cv2.COLOR_BGRA2BGR)
cv2.imencode('.jpg', image)[1].tofile('./大腦已超載2.jpg')
執行結果
印出圖片資訊:印出的(h, w, c),分別代表圖片的高度、寬度與通道數(彩色為3通道)
3.1 圖片:
print(image.shape)
3.2 影片擷取:
print(resize_img.shape)
讓我們繼續看下去...