OpenCV / C ++ - 在一些图像处理后将灰度图像转换为BGR图像

时间:2014-12-05 13:13:39

标签: c++ opencv video colors

我正致力于一个稳定视频的项目。 因此,在稳定过程中,我必须将我的帧转换为灰色,以便使用一些方法,如goodFeaturesToTrack()或opticalFlow()。

但是在我的过程结束时,在使用warpAffine()应用我的最后一次转换后,我想恢复帧的颜色信息,但我无法做到这一点。我试了一些东西。

  • 我尝试cvtColor(outFrame,outFrame,CV_GRAY2BGR)但不工作(显然)。还是回来了白色

  • 在循环开始时,我选择了原始图片的三个颜色通道B G R:

    Mat channel [3];

    split(frameColor,channel);

然后在流程结束时,我这样做:

 merge(channel,3,outFrame);

所以我有我的画面的颜色,但没有稳定,也就是说它像合并频道已经消除了所有的转变。

  • 我也尝试将warpAffine()函数与彩色图片一起使用,但我的结果与上面相同。

请帮帮我。

感谢。

1 个答案:

答案 0 :(得分:1)

我解决了我的问题。

实际上当你应用像warpAffine()之类的转换时,你必须将它应用于前一帧而不是当前帧。我没有注意到我将它应用到我当前的颜色框架而不是之前的颜色框架。因此,没有任何改变。

通过在我之前的彩色框架上应用它,图像颜色稳定。