OpenCV半小時掌握基本操作之圖像基礎操作

【OpenCV】⚠️高手勿入! 半小時學會基本操作⚠️ 圖像基礎操作

概述

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()

到此這篇關於OpenCV半小時掌握基本操作之圖像基礎操作的文章就介紹到這瞭,更多相關OpenCV圖像基礎操作內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: