【问题标题】:Take and save an image in ycbcr format using opencv使用 opencv 以 ycbcr 格式拍摄并保存图像
【发布时间】:2014-03-13 09:51:39
【问题描述】:

我们有一个 Matlab 程序,它以 YCbCr 格式从相机中获取图像,然后像 RGB 图像一样保存,其中 R 值是图像的 Y 值,G 值是图像的 Cb 值,B值是图像的 Cr 值。有没有办法在 C++ openCV 中复制这个过程?

【问题讨论】:

标签: c++ opencv


【解决方案1】:

如果 OpenCV 可以read 来自相机的图像,是的,你可以在 OpenCV 中复制这个过程。您所要做的就是确保每个通道都在可接受的范围内(8 位为 0..255)并且save 将图像添加到文件中。

关于值的范围,Cb 和 Cr 可以是负数,但 G 和 B 不能。您可以通过 shifting 解决这个问题 - 保存时向 Cb 和 Cr 添加 128(加载时执行相反的操作) - 或者通过聪明地了解哪些通道已签名和未签名。

关于保存,图像保存代码假定图像为 RGB,并按原样对 R、G、B 分量进行编码。如果您的图像是 YCbCr,则 Y 将编码为 R,Cb 编码为 G,Cr 编码为 B。图像在其他程序中打开时看起来会出错,但这是意料之中的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-12-24
    • 2017-09-20
    • 1970-01-01
    • 1970-01-01
    • 2014-07-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多