python環(huán)境下OPenCV處理視頻流局部區(qū)域像素值
參考我之前寫的處理圖片的文章:Python+OpenCV實(shí)現(xiàn)【圖片】局部區(qū)域像素值處理(改進(jìn)版)
開發(fā)環(huán)境:Python3.6.0 + OpenCV3.2.0
任務(wù)目標(biāo):攝像頭采集圖像(例如:480640),并對視頻流每一幀(灰度圖)特定矩形區(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") # 從文件讀取視頻 # 判斷視頻是否打開 if (camera.isOpened()): print 'Open' else: print 'Fail to open!' # # 測試用,查看視頻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)) # 畫目標(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) # 顯示畫出的條形圖 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ū)域像素處理的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Python語法def語句及復(fù)雜用法實(shí)例探究
在 Python 中,def?是用于定義函數(shù)的關(guān)鍵字,本文將深入介紹def的用法和特點(diǎn),詳細(xì)說明如何定義函數(shù)、傳遞參數(shù)、返回值以及更復(fù)雜的用法2024-01-01Python入門教程(十七)Python的While循環(huán)
這篇文章主要介紹了Python入門教程(十七)Python的While循環(huán),Python是一門非常強(qiáng)大好用的語言,也有著易上手的特性,本文為入門教程,需要的朋友可以參考下2023-04-04keras實(shí)現(xiàn)多種分類網(wǎng)絡(luò)的方式
這篇文章主要介紹了keras實(shí)現(xiàn)多種分類網(wǎng)絡(luò)的方式,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-06-06Python進(jìn)階之列表推導(dǎo)與生成器表達(dá)式詳解
這篇文章主要為大家詳細(xì)介紹了Python中列表推導(dǎo)與生成器表達(dá)式的相關(guān)知識,文中的示例代碼講解詳細(xì),具有一定的參考價(jià)值,需要的可以參考一下2023-04-04Linux環(huán)境下的Python打包和部署實(shí)踐
這篇文章主要介紹了Linux環(huán)境下的Python打包和部署實(shí)踐的相關(guān)資料,需要的朋友可以參考下2023-11-11Python數(shù)據(jù)結(jié)構(gòu)之單鏈表詳解
這篇文章主要為大家詳細(xì)介紹了Python數(shù)據(jù)結(jié)構(gòu)之單鏈表的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-09-09Tornado路由與Application的實(shí)現(xiàn)
本文主要介紹了Tornado路由與Application的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-05-05Python3自動生成MySQL數(shù)據(jù)字典的markdown文本的實(shí)現(xiàn)
這篇文章主要介紹了Python3自動生成MySQL數(shù)據(jù)字典的markdown文本的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05Python深度學(xué)習(xí)實(shí)戰(zhàn)PyQt5菜單和工具欄功能作用
本文詳細(xì)解讀通過 QtDesigner 創(chuàng)建主窗口、菜單欄和工具欄,并以菜單項(xiàng) “退出” 為例關(guān)聯(lián)系統(tǒng)定義的動作處理方法。有需要的朋友可以借鑒參考下,希望能夠有所幫助2021-10-10