我在C ++中使用OpenCV捕获图像
firstFrame = cvQueryFrame(capture);
可以通过
轻松设置宽度和高度属性cvSetCaptureProperty( capture, CV_CAP_PROP_FRAME_WIDTH, WIDTH );
cvSetCaptureProperty( capture, CV_CAP_PROP_FRAME_HEIGHT, HEIGHT );
我想知道是否有办法在没有进一步处理框架的情况下指定颜色深度?
答案 0 :(得分:2)
根据documentation,如果您使用CV_CAP_PROP_FORMAT
功能获取框架,则应该可以使用retrive()
执行此操作。
CV_CAP_PROP_FORMAT由retrieve()返回的Mat对象的格式。
但是,请注意:
查询后端不支持的属性时 VideoCapture类,返回值为0。
答案 1 :(得分:0)
在github上分叉了一个单独的分支,改变了videoio以支持自定义流和&格式。
Git hub repo link
https://github.com/shawndfernandes/opencv
添加了对自定义流和&amp ;;的支持opencv capture的深度,如果没有设置,则恢复为默认的opencv值。
通过VideoWriter :: set method设置
CV_CAP_PROP_DEPTH
matrix_depth = 8,16 // *用于8U,16用于16U深度
CV_CAP_PROP_STREAM
stream_format = 1,2,3,4,5 ... 12; //通过V4L选择原始相机流
“BGR24”1:
“YVU420”2:
“YUV411P”3:
“MJPEG”4:
“JPEG”5:
“YUYV”6:
“UYVY”7:
“SN9C10X”8:
“SBGGR8”9:
“SGBRG8”10:
“RGB24”11:
“Y16”12: