Opencv-顏色追蹤

功能實現:基於Opencv的顏色追蹤

編程語言:python

IDE:pycharm

代碼實現(以追蹤綠色爲例):

import cv2 as cv
import numpy as np

cap = cv.VideoCapture(0)

fps = 30.0  # 視頻幀率
fourcc = cv.VideoWriter_fourcc('M', 'J', 'P', 'G')
videoWriter = cv.VideoWriter('color_track.avi', fourcc, fps, (640*2, 480))

while True:
    ret,frame = cap.read()
    cv.imshow("img", frame)

    hsv = cv.cvtColor(frame,cv.COLOR_BGR2HSV)

    # 指定綠色範圍
    lowerb = np.array([35,43,46])
    upperb = np.array([77,255,255])

    # 截取綠色目標
    mask = cv.inRange(hsv,lowerb,upperb)
    cv.imshow("mask", mask)

    # 形態學操作:開操作(去除mask中的細小顆粒)
    kernel = cv.getStructuringElement(cv.MORPH_RECT,(5,5))
    mask_open = cv.morphologyEx(mask,cv.MORPH_OPEN,kernel,iterations=2)

    # 還原目標像素
    dst = cv.bitwise_and(frame,frame,mask=mask_open)
    cv.imshow("dst", dst)

    # 圖像拼接:axis=0 縱向拼接;axis=1 橫向拼接
    result = np.concatenate([frame, dst],1)
    cv.imshow("result", result)

    # 保存視頻
    videoWriter.write(result)

    c = cv.waitKey(50)
    if c == 27:
        break
videoWriter.release()
cap.release()

實現效果(視頻上傳不了,以圖片表示吧):

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章