OpenCV:灰度图像的 YUV 值?

OpenCV: YUV values of a grayscale image?

是否可以计算灰度图像的 YUV 值?

我发现了一篇让我困惑的文章:Interactive Image Colorization and Recoloring based on Coupled Map Lattices。其中作者提出了一种对图像进行着色和重新着色的算法。

对于着色,他们对灰度图像进行着色。用户在图像的某些区域涂上所需的颜色,该颜色会由算法自动传播。

他们使用 YUV 颜色 space 来比较当前像素与其相邻像素之间 Y 的值。如果邻居的 Y 值比当前像素强,则将其 UV 值设置为邻居(攻击者)的值。

我的问题:如何计算灰度图像给定像素的 YUV 值?

或者可能是一个更好的问题:他们在那篇文章中如何比较每个像素的 UV 值,因为他们在开始时将它们设置为 0(灰度)?

三个问题合二为一:

  1. 是否可以计算灰度图像的YUV值?

    是。

  2. 我的问题:如何计算灰度图像给定像素的 YUV 值?

    您可以将灰度图像视为 RGB 图像,然后将其转换为 YUV:

    cv::Mat1b image;
    cv::Mat3b image_BGR, image_YUV;
    cv::cvtColor( image, image_BGR, COLOR_GRAY2BGR );
    cv::cvtColor( image_BGR, image_YUV, COLOR_BGR2YUV );
    
  3. 或者可能是一个更好的问题:他们在那篇文章中如何比较每个像素的 UV 值,因为他们在开始时将它们设置为 0(灰度)?

    我建议你 post 这个问题作为一个单独的问题(并在论文的 PDF 中添加 link)。