06-openCV获取实时视频流
本章介绍如何用openCV获取实时的采集卡图像。
源码路径
源码位于:06-opencv-RTVideo文件夹中。
该工程打开采集卡图像。并实时显示到屏幕上。如果需要对采集内容进行处理。可加入自己的处理逻辑。
本章小结
代码走读
首先打开盒子摄像头,固有编号为9.
然后尝试设置采集输出分辨率。
获取实际输出分辨率。
死循环显示。
运行代码
屏幕显示如下:
从打印中可以看出。常设设置采集卡输出分辨率为1280x720@60Hz失败。实际采集到的分辨率是3840x2160@18Hz。
失败原因可能是显卡输出分辨率太高。可以尝试修改显卡输出分辨率。此时盒子屏幕就能实时显示显卡输出的图像。
如果需要处理可以自行增加函数处理。
FAQ常见问题
如何退出程序
1、控制台直接按键盘ctr+c
2、按键盘End快捷键(切换到内部UI快捷键,以你设置的为准)
为什么分辨率不正确
上图中可以看到,尝试设置采集卡分辨率为1280X720@60Hz.但是提示失败。实际采集到的分辨率是3840x2160@18Hz(4K分辨率)。
首先要冷静,设置失败指的是核心板设置采集卡输返回错误。核心板读到的采集卡输出分辨率是3840x2160。 那么首先需要明确一点,采集卡不可能放大分辨率。也就是输入进来的图像分辨率一定是3840x2160。跟据常识。帧率不可能是18HZ.极有可能是30HZ或者60HZ.只是达到了采集芯片的最大出口带宽4K15Hz.故读出来的分辨率是4K18HZ。要解决这个问题可能需要降低显卡输出分辨率。
为什么显卡输出1080P60.但是实际读到的却不是
如图所示,显示器2在PC端显示的是1920x1080@60Hz.但是盒子读到的分辨率是3840x2160@18HZ
你看到的不一定正确。显卡可能有自己的算法。最可靠的是自定义分辨率。强制输出。