opencv 學習第二課 攝像頭、外部視頻讀取、處理、顯示、寫入 代碼註釋版 保證你每一行都能讀懂

 1. 使用攝像頭捕捉圖像,將其轉換爲灰度幀後,輸出視頻圖像

import numpy as np 
import cv2 as cv 

cap = cv.VideoCapture(0)

while(True):
	# 一幀一幀的捕捉
	ret,frame = cap.read()
	# 將每一幀從RGB轉換成灰度
	gray = cv.cvtColor(frame,cv.COLOR_BGR2GRAY)
	#顯示捕捉的結果幀
	cv.imshow('frame',gray)
	#按q退出
	if cv.waitKey(1) & 0xFF==ord('q'):
		break

#釋放攝像頭
cap.release()
#釋放所有窗口
cv.destroyAllWindows()

 2.  讀取外部的彩色視頻,將其轉換爲灰度幀後顯示視頻

import numpy as np 
import cv2 as cv 

cap = cv.VideoCapture('D:/test.mp4')

#播放視頻
while(cap.isOpened()):
	# 一幀一幀的捕捉
	ret,frame = cap.read()
	# 將每一幀從RGB轉換成灰度
	gray = cv.cvtColor(frame,cv.COLOR_BGR2GRAY)
	#顯示捕捉的結果幀
	cv.imshow('frame',gray)
	#按q退出,參數爲1ms播放速度較快,一般設爲25毫秒
	if cv.waitKey(25) & 0xFF==ord('q'):
		break

#釋放視頻
cap.release()
#釋放所有窗口
cv.destroyAllWindows()

 3. 攝像頭捕捉彩色圖像,設置輸出視頻的格式,將捕捉到的幀鏡像化後輸出到程序所在目錄

import numpy as np 
import cv2 as cv 

# 打開攝像頭
cap = cv.VideoCapture(0)
# 寫入視頻的格式爲XVID
fourcc = cv.VideoWriter_fourcc(*'XVID')
# 第三個參數爲fps 第四個參數爲視頻大小
out=cv.VideoWriter('output.avi',fourcc,20.0,(640,480))

while(cap.isOpened()):
	ret,frame = cap.read()
	if ret==True:
		# 將幀水平翻轉(參數爲1)
		frame = cv.flip(frame,1)
		# 將幀寫入output.avi
		out.write(frame)
		# 窗口顯示處理過的幀
		cv.imshow('frame',frame)
		if cv.waitKey(1) & 0xFF == ord('q'):
			break
	else:
		break

# 釋放攝像頭
cap.release();
# 釋放輸出的視頻
out.release();
# 釋放所有窗口
cv.destroyAllWindows()

 

參考文獻:https://docs.opencv.org/4.0.1/d2/de8/group__core__array.html#gaca7be533e3dac7feb70fc60635adf441


 我要成爲一名優秀的圖像處理專家!

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