我是 Opencv 的初学者。在我的新 opencv 项目中,我必须从相机设备捕获视频帧,并需要将它们提供给 opencv 进行处理,但现在我的相机无法正常工作(硬件问题)。我需要使用从另一个相同类型的相机设备获取的 YUV 文件来测试 opencv 应用程序。所以我的问题是:如何将 YUV 数据提供给 opencv?opencv 是否支持 YUV 数据?
从我的调查中我可以知道,opencv 将捕获的帧转换为格式 Mat.So 有什么方法可以将 YUV 数据直接转换为 Mat 对象并提供给 opencv 进行处理。
我的设备没有任何用于 MPEG、AVI 等的编解码器
小智 3
我最近在这里问了一个类似的问题OpenCV 从相机捕获 YUYV,无需 RGB 转换
openCV VideoCapture 对象是捕获视频的最简单方法,但它会自动将帧转换为 BGR 格式。您可以使用videoCapture.set(CV_CAP_PROP_CONVERT_RGB, false)禁用此功能
由于某种原因,该特定命令不适用于我的相机,因此我被迫使用 V4L2 库来读取帧(这与 videoCapture 使用的库相同)。V4L2 的示例视频捕获代码:http://linuxtv.org/downloads/v4l-dvb-apis/capture-example.html。然后我将帧存储在 cv::Mat 中进行处理。
您可以在 openCV Mat 中存储任何格式的数据,但某些操作会假设数据的格式。例如,imshow 将假设数据是 BGR 或灰度格式。如果您的数据不是这些格式之一,您的图像将看起来错误。
| 归档时间: |
|
| 查看次数: |
16519 次 |
| 最近记录: |