【OpenCV】高手勿入! 半小時學會基本操作 2
- 概述
- 截取影像
- 獲取顏色通道
- 單通道顯示
- 讀取視頻
概述
OpenCV 是一個跨平臺的計算機視覺庫, 支持多語言, 功能強大. 今天小白就帶大家一起攜手走進 OpenCV 的世界.

截取影像
例子:
# 截取影像
img = cv2.imread("picture.jpg")
img = img[200:600, 400:1000]
cv2.imshow("cut", img)
cv2.waitKey(0)
cv2.destroyAllWindows()
輸出結果:

獲取顏色通道
cv2.split可以幫助我們獲取不同顏色通道.
格式:
cv2.split(img)
例子:
# 獲取顏色通道
img = cv2.imread("picture.jpg") # 讀取圖片
b, g, r = cv2.split(img) # 分割顏色通道
print(r.shape, g.shape, b.shape) # 除錯輸出
輸出結果:
(1263, 1920) (1263, 1920) (1263, 1920)
單通道顯示
# 單通道顯示
img = cv2.imread("picture.jpg") # 讀取圖片
cur_img = img.copy() # 深拷貝
cur_img[:, :, 0] = 0 # B通道設定為0
cur_img[:, :, 1] = 0 # G通道設定為0
cv2.imshow("B channel", cur_img) # 圖片展示
cv2.waitKey(0)
cv2.destroyAllWindows()
輸出結果:

讀取視頻
cv2.VideoCapture可以幫助我們讀取視頻. 通過數字來控制不同的設備, 例如 0, 1. 或者指定視頻檔案路徑.
格式:
cv2.VideoCapture(video_path or device_index )
引數:
- video_path: 視頻檔案路徑
- device_index: 錄像設備 (攝像頭) 索引, 例如 0, 1
例子:
# 讀取視頻
vc = cv2.VideoCapture("video.mp4")
# 回圈
while (True):
# 讀取一幀,ret為bool型別,指示是否成功讀取這一幀
ret, frame = vc.read()
# 轉為灰度圖
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
# 顯示
cv2.imshow('frame', gray)
# 若沒有按下q鍵,則每1毫秒顯示一幀
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# 釋放
vc.release()
cv2.destroyAllWindows()
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/289417.html
標籤:其他
