【问题标题】:Processing .Raw images using ffmpeg or OpenCV使用 ffmpeg 或 OpenCV 处理 .Raw 图像
【发布时间】:2013-02-08 11:37:21
【问题描述】:

在阅读Wikipedia page 的原始图像格式后,它是任何图像的数字负片。

要查看或打印,相机图像传感器的输出具有 进行处理,即转换为照片的渲染图 场景,然后以标准光栅图形格式存储,例如 JPEG。此处理,无论是在相机内完成还是稍后在原始文件中完成 转换器,涉及许多操作,通常包括

我使用v4l2 example 从我的 Logitech c920 抓取了一些 .raw 文件,但是当我显示图像时,它看起来像这样: 在其他帧中我可以看到我的影子的原始图像

有谁知道如何处理这些文件以查看完整的帧?

Here is a link to the original .raw file

【问题讨论】:

  • 你是怎么显示的? raw 在这里可能意味着它没有被处理并且没有附加“标题”。不过,它有一些格式。大多数传感器使用类似 yuv 的东西。所以,如果你能找出你相机的原生格式是什么,那么在 opencv 中很容易使用 cvtColor() 来获得漂亮的 rgb 等
  • 我尝试将其从 yuv 转换为 rgb 但失败了,此图像显示为原始图像。
  • many different ways来存储和表示YUV数据。看起来你解码错误。
  • 现在它是一个PNG,所以它与问题无关。包含指向原始文件的链接。
  • 原始格式图像有两种定义。第一个是没有应用格式的像素转储。第二种是相机特定格式,包含来自传感器芯片的未经过滤的数据。您给出的报价适用于第二个定义,但第一个定义是实际适用于您的样本的定义。传感器数据已经被处理成像素,只需确定它们的格式即可。

标签: c opencv image-processing ffmpeg v4l2


【解决方案1】:
ffmpeg -f rawvideo -s 640x480 -pix_fmt yuyv422 -i frame-1.raw frame-1.jpg

这些选项是根据链接的v4l2 代码设置的,生成的图像是您期望得到的图像。

【讨论】:

  • +1 用于正确解码格式,但有代码来做会更有用。
  • 从这个问题开始:stackoverflow.com/questions/7954416/…
  • 我认为它工作正常,但问题是它的分辨率非常低,不是原始分辨率。
  • @AhmedKato 这是一张 640x480 的图片,如果您想要更高的分辨率,请将其保存为更高的分辨率。解码代码在那里,ffmpeg 是开源的。
  • 如果我使用 ffmpeg 抓取 640x480 帧,它将是 92600kb,使用您的命令只有 32kb。
猜你喜欢
  • 2013-02-27
  • 1970-01-01
  • 2012-06-26
  • 2016-07-18
  • 1970-01-01
  • 2022-06-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多