起因
發(fā)現(xiàn)linux系統(tǒng)下調(diào)用opencv修改攝像頭分辨率,一直修改不成功。
原本
正常在window下面讀取攝像頭數(shù)據(jù)是如下代碼:
# capture from web cam
cap = cv2.VideoCapture(0)
# set width
cap.set(3, 1280)
# set height
cap.set(4, 720)
while self._run_flag:
ret, img = cap.read()
if ret:
# do something
#
# shut down capture system
cap.release()
但是在Ubuntu下沒(méi)辦法修改攝像頭分辨率,一直都是640x360。
解決
懷疑是攝像頭的問(wèn)題,使用linux下的v4l2
查看usb攝像頭支持的分辨率
1. 查看目前有的攝像頭設(shè)備
v4l2-ctl --list-devices
0代表實(shí)際攝像頭,1代表虛擬攝像頭
2.查看攝像頭具體信息
v4l2-ctl --device=/dev/video0 --list-formats-ext
opencv默認(rèn)讀的是YUYV422,這個(gè)相機(jī)在這個(gè)模式下只有640360,因此修改不了分辨率,如果要修改需要指定解碼方式MJPG
或H264
,這兩個(gè)分辨率都支持1280720或1920*1080
cap.set(cv2.CAP_PROP_FOURCC, cv2.VideoWriter_fourcc('M', 'J', 'P', 'G'))
# set width
cap.set(3, 1280)
# set height
cap.set(4, 720)
就可以修改為720*1280的分辨率了。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-622078.html
同理,這個(gè)方法也可以用于修改視頻幀率。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-622078.html
到了這里,關(guān)于【linux】opencv修改攝像頭分辨率的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!