python環(huán)境下OPenCV處理視頻流局部區(qū)域像素值
參考我之前寫(xiě)的處理圖片的文章:Python+OpenCV實(shí)現(xiàn)【圖片】局部區(qū)域像素值處理(改進(jìn)版)
開(kāi)發(fā)環(huán)境:Python3.6.0 + OpenCV3.2.0
任務(wù)目標(biāo):攝像頭采集圖像(例如:480640),并對(duì)視頻流每一幀(灰度圖)特定矩形區(qū)域(48030)像素值進(jìn)行行求和,得到一個(gè)480*1的數(shù)組,用這480個(gè)數(shù)據(jù)繪制條形圖,即在逐幀采集視頻流并處理后“實(shí)時(shí)”顯示采集到的視頻,并“實(shí)時(shí)”更新條形圖。工作流程如下圖:


源碼:
# -*- coding:utf-8 -*-
import cv2
import numpy as np
camera = cv2.VideoCapture(0) # 參數(shù)0表示第一個(gè)攝像頭
# camera = cv2.VideoCapture("test.avi") # 從文件讀取視頻
# 判斷視頻是否打開(kāi)
if (camera.isOpened()):
print 'Open'
else:
print 'Fail to open!'
# # 測(cè)試用,查看視頻size
# size = (int(camera.get(cv2.CAP_PROP_FRAME_WIDTH)),
# int(camera.get(cv2.CAP_PROP_FRAME_HEIGHT)))
# print 'size:'+repr(size)
rectangleCols = 30
while True:
grabbed, frame_lwpCV = camera.read() # 逐幀采集視頻流
if not grabbed:
break
gray_lwpCV = cv2.cvtColor(frame_lwpCV, cv2.COLOR_BGR2GRAY) # 轉(zhuǎn)灰度圖
frame_data = np.array(gray_lwpCV) # 每一幀循環(huán)存入數(shù)組
box_data = frame_data[:, 400:400+rectangleCols] # 取矩形目標(biāo)區(qū)域
pixel_sum = np.sum(box_data, axis=1) # 行求和q
length = len(gray_lwpCV)
x = range(length)
emptyImage = np.zeros((rectangleCols*10, length*2, 3), np.uint8)
for i in x:
cv2.rectangle(emptyImage, (i*2, (rectangleCols-pixel_sum[i]/255)*10), ((i+1)*2, rectangleCols*10), (255, 0, 0), 1)
emptyImage = cv2.resize(emptyImage, (320, 240))
# 畫(huà)目標(biāo)區(qū)域
lwpCV_box = cv2.rectangle(frame_lwpCV, (400, 0), (430, length), (0, 255, 0), 2)
cv2.imshow('lwpCVWindow', frame_lwpCV) # 顯示采集到的視頻流
cv2.imshow('sum', emptyImage) # 顯示畫(huà)出的條形圖
key = cv2.waitKey(1) & 0xFF
if key == ord('q'):
break
camera.release()
cv2.destroyAllWindows()
以上就是python環(huán)境下OPenCV處理視頻流局部區(qū)域像素值的詳細(xì)內(nèi)容,更多關(guān)于OPenCV視頻流局部區(qū)域像素處理的資料請(qǐng)關(guān)注本站其它相關(guān)文章!
版權(quán)聲明:本站文章來(lái)源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來(lái)源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來(lái)源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來(lái),僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。
關(guān)注官方微信