国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

攝像頭的調(diào)用和視頻識(shí)別

這篇具有很好參考價(jià)值的文章主要介紹了攝像頭的調(diào)用和視頻識(shí)別。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

攝像頭調(diào)用

創(chuàng)建視頻捕捉對(duì)象:cv2.VideoCapture()
參數(shù)為視頻設(shè)備的索引號(hào),就一個(gè)攝像投的話寫0默認(rèn);
或者是指定要讀取視頻的路徑。

+實(shí)時(shí)播放

import cv2
import numpy as np

cap = cv2.VideoCapture(0) 
# 創(chuàng)建循環(huán)結(jié)構(gòu)連續(xù)按幀讀取視頻
while (True):
	# ret返回布爾值,frame三維矩陣(每一幀的圖像)
	ret, frame = cap.read()
	# 并展示
	cv2.imread('frame', frame)
	# 按下‘q’鍵退出循環(huán)
	if cv2.waitKey(1) && 0xFF ==ord('q'):
		break
cap.release() # 釋放資源
cv2.destroyAllWindows()

+保存視頻

cv2.VideoWriter()

import cv2

cap = cv2.VideoCapture(0)

#創(chuàng)建編碼方式
# mp4:'X','V','I','D'
# avi:'M','J','P','G'或'P','I','M','1' 
# flv:'F','L','V','1'
fourcc = cv2.VideoWriter_fourcc('X','V','I','D')

# 創(chuàng)建VideoWriter對(duì)象
out = cv2.VideoWriter('ouput_1.mp4', fourcc, 20.0, (640, 480)) # 播放幀率,大小
# 創(chuàng)建循環(huán)結(jié)構(gòu)進(jìn)行連續(xù)讀寫
while(cap.isOpened()):
	ret, frame = cap.read()
	if ret == True:
		out.write(frame)
		cv2.imshow('frame', frame)
		if cv2.waitKey(1) && 0xFF == ord('q'):
			break
		else:
			break
cap.release()
out.release()
cv2.destryAllWindows()

運(yùn)動(dòng)目標(biāo)識(shí)別

幀差法

通過(guò)對(duì)視頻中相鄰兩幀圖像做差分運(yùn)算來(lái)標(biāo)記運(yùn)動(dòng)物體,
移動(dòng)的物體在相鄰幀中灰度會(huì)有差別,因此差值為0的是靜態(tài)物體。

import cv2
camera = cv2.VideoCapture("move_detect.flv")

out_fps = 12.0 # 輸出文件的幀率
fourcc = cv2.VideoWriter_fourcc('M', 'P', '4', '2') # 創(chuàng)建編碼方式
# 創(chuàng)建VideoWriter對(duì)象
out1 = cv2.VideoWriter('v1.avi', fourcc, out_fps, (500, 400))
out2 = cv2.VideoWriter('v2.avi', fourcc, out_fps, (500, 400))

# 初始化
lastFrame = None

# 創(chuàng)建循環(huán)結(jié)構(gòu)進(jìn)行連續(xù)讀寫
while camera.isOpened():
	ret, frame = camera.read()
	# 如果不能抓取到一幀,說(shuō)明到了視頻的結(jié)尾
	if not ret:
		break
	# 調(diào)整該幀大小
	frame = cv2.resize(frame, (500, 400), interpolation = cv2.INTER_CUBIC)
	# 如果第一幀是None,對(duì)其初始化
	if lastFrame == None:
		lastFrame = frame
		continue
	# 求幀差
	frameDelta = cv2.absdiff(lastFrame, frame)
	lastFrame = frame
    '''
	閾值化,留下輪廓
	'''
	thresh = cv2.cvtColor(frameDelta, cv2.COLOR_BGR2GRAY) # 灰度圖
	thresh = cv2.threshold(thresh, 25, 255, cv2.THRESH_BINARY)[1] # 二值化
	# 閾值圖像上的輪廓位置
	cnts, hierarchy = cv2.findContours(thresh.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
	# 遍歷輪廓
	for c in cnts:
		# 忽略小輪廓,可能運(yùn)動(dòng)的小鳥之類的,排除誤差
		if cv2.contourArea(c) < 300:
			continue
		# 畫輪廓邊界框
		(x, y, w, h) = cv2.boundingRect(c)
		cv2.rectangle(frame, (x, y), (x + w, y + h), (0, 0, 255), 2)
	# 展示當(dāng)前幀
	cv2.imshow("frame", frame)
	cv2.imshow("frameDelta", frameDelta)
	cv2.imshow("thresh", thresh)
	# 保存視頻
	out1.write(frame)
	out2.write(frameDelta)

	if cv2.waitKey(20) && 0xFF == ord('q'):
		break
# 資源釋放
out1.release() 
out2.release() 
camera.release() 
cv2.destroyAllWindows()

攝像頭的調(diào)用和視頻識(shí)別,計(jì)算機(jī)視覺(jué)基礎(chǔ),opencv,計(jì)算機(jī)視覺(jué),視頻
飄動(dòng)的彩帶也被捕捉到了,但是去誤差,沒(méi)有標(biāo)小輪廓;
行人前后幀(運(yùn)動(dòng))幅度小的也沒(méi)被發(fā)現(xiàn)(框定)。

背景減除法

對(duì)視頻的背景進(jìn)行建模,實(shí)現(xiàn)背景消除,生成mask圖像,通過(guò)對(duì)mask二值圖像分析實(shí)現(xiàn)對(duì)前景活動(dòng)對(duì)象的區(qū)域的提取。

  1. 初始化背景建模對(duì)象GMM
  2. 讀取視頻一幀
  3. 使用背景建模消除生成mask
  4. 對(duì)mask進(jìn)行輪廓分析圖區(qū)ROI(region of interest)
  5. 繪制ROI對(duì)象
import numpy as np
import cv2

# read the video
camera = cv2.VideoCapture('move_detect.flv')
# 創(chuàng)建背景減除對(duì)象
fgbg = cv2.createBackgroundSubstractorMOG2(
	history = 500, varThreshold = 100, detectShadows = False)

def getPerson(image, opt=1):
	# 獲取前景mask
	mask = fgbg.apply(frame)
	'''
	去噪
	'''
	# 創(chuàng)建一個(gè)矩形形狀的結(jié)構(gòu)元素,用于形態(tài)學(xué)操作,如腐蝕(erosion)和膨脹(dilation)
	line = cv2.getStructuringElement(cv2.MORPH_RECT, (1, 5), (-1, -1))
	mask = cv2.morphologyEx(mask, cv2.MORPG_OPEN, line)
	cv2.imshow('mask', mask) 
	
	# 畫出輪廓并忽略小于閾值的輪廓
	contours, hierarchy = cv2.findContours(mask, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
	for c in contours:
		area = cv2.contourArea(c)
		if area < 150:
			continue
		rect = cv2.minAreaRect(c) # 返回一個(gè)具有最小面積的矩形
		cv2.ellipse(image, rect, (0, 0, 255), 2, 8)
		cv2.circle(image, (np.int32(rect[0][0]), np.int32(rect[0][1])), 2, (0, 0, 255), 2, 8, 0) # 取矩形中心點(diǎn)作為圓心
	return image, mask

while True:
	ret, frame = camera.read()
	res, m_ = getPerson(frame) # Python中使用下劃線作為占位符變量名是一種慣例。它也可以用來(lái)忽略函數(shù)的返回值或迭代中的某些值,以避免產(chǎn)生未使用變量的警告
	cv2.imshow('res', res)
	if cv2.waitKey(20) && 0xFF == ord('q'):
		break
# 資源釋放
camera.release() 
cv2.destroyAllWindows()

圖像論1幀,連續(xù)幀就成了視頻文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-679610.html

到了這里,關(guān)于攝像頭的調(diào)用和視頻識(shí)別的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 使用OpenCV調(diào)用攝像頭和讀取視頻圖片

    使用OpenCV調(diào)用攝像頭和讀取視頻圖片

    要捕獲視頻,你需要?jiǎng)?chuàng)建一個(gè) VideoCapture 對(duì)象。它的參數(shù)是設(shè)備索引的名稱。設(shè)備索引就是指定哪個(gè)攝像頭的數(shù)字。正常情況下,內(nèi)部攝像頭可以通過(guò)傳入0來(lái)調(diào)用,傳遞1來(lái)選擇外置的第二個(gè)相機(jī),以此類推。在此之后,你可以逐幀捕獲。但是在最后,不要忘記釋放俘虜。 直

    2024年02月08日
    瀏覽(28)
  • yolo v5代碼運(yùn)行圖片、調(diào)用攝像頭、視頻

    yolo v5代碼運(yùn)行圖片、調(diào)用攝像頭、視頻

    一、運(yùn)行 1.視頻 修改detect文件219行。 default=ROOT / \\\'data/images/3.mp4\\\' 2.調(diào)用攝像頭 修改detect文件219行 3.圖片 修改detect文件219行。 default=ROOT / \\\'data/images/3.jpg\\\' 二、庫(kù) Package Version absl-py 1.3.0 alabaster 0.7.12 applaunchservices 0.2.1 appnope 0.1.2 arrow 1.2.3 astroid 2.11.7 atomicwrites 1.4.0 attrs 22.1.0 autope

    2023年04月17日
    瀏覽(21)
  • JS PC端調(diào)用攝像頭錄視頻截圖上傳文件

    創(chuàng)建 Catcher 類 直接在HTML文件中調(diào)用

    2024年02月10日
    瀏覽(27)
  • openCV 多線程調(diào)用多個(gè)??低晹z像頭(避免畫面不同步),進(jìn)行人臉識(shí)別

    openCV 多線程調(diào)用多個(gè)海康威視攝像頭(避免畫面不同步),進(jìn)行人臉識(shí)別

    1、創(chuàng)建多個(gè)線程來(lái)拉取不同的視頻流,不使用多線程的話,所有的視頻流就在排一個(gè)隊(duì),會(huì)出現(xiàn)畫面不同步的情況 代碼: 2、使用numpy將多個(gè)畫面放在同一個(gè)frame中,圖像就是矩陣,numpy是用來(lái)處理矩陣的類 代碼: ?進(jìn)行人臉識(shí)別,網(wǎng)不好幀率太低

    2024年04月25日
    瀏覽(79)
  • 【計(jì)算機(jī)視覺(jué)】基于OpenCV計(jì)算機(jī)視覺(jué)的攝像頭測(cè)距技術(shù)設(shè)計(jì)與實(shí)現(xiàn)

    【計(jì)算機(jī)視覺(jué)】基于OpenCV計(jì)算機(jī)視覺(jué)的攝像頭測(cè)距技術(shù)設(shè)計(jì)與實(shí)現(xiàn)

    在當(dāng)今技術(shù)日益進(jìn)步的時(shí)代,計(jì)算機(jī)視覺(jué)已成為我們生活中不可或缺的一部分。從智能監(jiān)控到虛擬現(xiàn)實(shí),計(jì)算機(jī)視覺(jué)技術(shù)的應(yīng)用范圍日益廣泛。在這篇博客中,我們將探索一個(gè)特別實(shí)用的計(jì)算機(jī)視覺(jué)案例:使用OpenCV實(shí)現(xiàn)攝像頭測(cè)距。這一技術(shù)不僅對(duì)專業(yè)人士有用,也為編程愛(ài)

    2024年02月04日
    瀏覽(26)
  • 用于計(jì)算機(jī)屏幕安全攝像頭系統(tǒng):Screen Anytime Crack

    用于計(jì)算機(jī)屏幕安全攝像頭系統(tǒng):Screen Anytime Crack

    Screen Anytime 是一款軟件,旨在自動(dòng)將整個(gè)用戶會(huì)話或 PC/服務(wù)器/VM/Kiosk 的 /RDP/Citrix/RemoteApp 會(huì)話的屏幕活動(dòng)記錄到視頻日志文件中,以用于記錄、審核和監(jiān)控目的。通過(guò)重播其高度壓縮的視頻,您可以輕松回顧單臺(tái)計(jì)算機(jī)或一組服務(wù)器/PC 的任何過(guò)去時(shí)刻。還包括集中管理和實(shí)

    2024年01月23日
    瀏覽(24)
  • 樹莓派CSI攝像頭使用python調(diào)用opencv庫(kù)函數(shù)進(jìn)行運(yùn)動(dòng)檢測(cè)識(shí)別

    樹莓派CSI攝像頭使用python調(diào)用opencv庫(kù)函數(shù)進(jìn)行運(yùn)動(dòng)檢測(cè)識(shí)別

    目錄 一、完成攝像頭的調(diào)用 二、利用python調(diào)用opencv庫(kù)函數(shù)對(duì)圖像進(jìn)行處理 2.1 圖像處理大體流程 2.2 opencv調(diào)用函數(shù)的參數(shù)以及含義 2.2.1?ret, img = cap.read() 讀取幀圖像 2.2.2?cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) 灰度圖像 2.2.3?gray_diff_img?= cv2.absdiff(gray_img, previous_img) 幀差法 2.2.4?cv2.thre

    2024年02月15日
    瀏覽(29)
  • MediaPipe上手案例,手部骨架識(shí)別,用視頻替換代碼攝像頭采集

    MediaPipe上手案例,手部骨架識(shí)別,用視頻替換代碼攝像頭采集

    在做 MediaPipe 項(xiàng)目的時(shí)候,經(jīng)常需要喚醒攝像頭進(jìn)行視頻采集,學(xué)習(xí)的時(shí)候可以使用視頻替換攝像頭采集動(dòng)作,這就是本篇博客的的由來(lái)。 為了便于學(xué)習(xí),我們先直接展示入門案例,然后查看從代碼角度進(jìn)行講解。 為了讓代碼跑起來(lái),需要提前安裝 opencv-python 庫(kù)和 mediapipe 庫(kù)

    2023年04月17日
    瀏覽(21)
  • 使用ffmpeg調(diào)用電腦自帶的攝像頭和揚(yáng)聲器錄制音視頻

    使用ffmpeg調(diào)用電腦自帶的攝像頭和揚(yáng)聲器錄制音視頻

    1、打開cmd,執(zhí)行 chcp 65001 ,修改cmd的編碼格式為utf8,避免亂碼 2、執(zhí)行指令 ffmpeg -list_devices true -f dshow -i dummy ,查看當(dāng)前window的音頻和視頻名稱 3、打開windows系統(tǒng)的\\\"打開聲音設(shè)置\\\"–“麥克風(fēng)隱私設(shè)置”–\\\"允許應(yīng)用訪問(wèn)你的麥克風(fēng)\\\"點(diǎn)擊開啟 錄制視頻: 錄制音頻: 錄制音視頻:

    2024年02月04日
    瀏覽(33)
  • 樹莓派利用python-opencv使用CSI攝像頭調(diào)用監(jiān)控視頻

    樹莓派利用python-opencv使用CSI攝像頭調(diào)用監(jiān)控視頻

    目錄 一、安裝python-opencv。 二、使用工具Xshell7和MobaXterm 三、連接并打開CSI攝像頭 3.1連線如圖所示: 3.2打開攝像頭 四、編寫攝像頭代碼調(diào)用攝像頭 ? ? ? ? 一定要選擇配置好的安裝python-opencv,不要去配置安裝,然后還cmake編譯,沒(méi)有必要基本上安裝過(guò)程都會(huì)報(bào)2-3個(gè)錯(cuò)誤,還

    2023年04月17日
    瀏覽(29)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包