我试图运行用于对象检测的教程代码。我有罗技 c170 网络摄像头。我无法在连接此 cam 的情况下运行任何教程代码。
HIGHGUI ERROR: V4L/V4L2: VIDIOC_S_CROP --(!) No captured frame -- Break!
但同样的程序可以通过我的内置网络摄像头有效运行。因为我是openCV的新手,所以我无法理解错误。
当我使用两个摄像头(内置和罗技 c170)的详细信息时
v4l2-ctl --device=/dev/video0 --all
驱动程序信息(不使用 libv4l2):驱动程序名称:uvcvideo 卡类型:网络摄像头 C170 总线信息:usb-0000:00:1d.0-1.2 驱动程序版本:3.2.50 功能:0x04000001 视频捕获流格式视频捕获:宽度/高度:640/480 像素格式:'MJPG' 字段:无每行字节数:0 大小图像:921600 色彩空间:SRGB 裁剪能力视频捕获:边界:左侧 0,顶部 0,宽度 640,高度 480 默认值:左侧 0,顶部 0 ,宽度 640,高度 480 像素纵横比:1/1 视频输入:0(相机 1:ok) 流参数视频捕获:功能:timeperframe 每秒帧数:30.000 (30/1) 读取缓冲区:0
我得到了两者的像素格式不同的区别。内置凸轮是YUYV,而罗技是MJPG。更重要的是,我完全不知道 MJPG 格式..我尝试使用将甲酸盐更改为 YUYV
v4l2-ctl --device=/dev/video1 --set-fmt-video=width=640,height=480,pixelformat=0
我可以更改格式。但是当我再次运行程序时,错误重复出现,系统再次将格式更改为 MJPG。
将我视为 OpenCV 中最小的人..