将二进制图像转换为OpenCV中的RGB

Convert binary image into RGB in OpenCV

本文关键字:OpenCV 中的 RGB 转换 二进制 图像      更新时间:2023-10-16

我正在使用opencv 2.4.3进行前景检测。我想将二进制的结果前景转换为RGB图像。我的代码是这样:

cv::VideoCapture cap;
cap.open ( "test.avi " );
cv::Mat img;
cv::Mat finalForeground;
cv::Mat element( 3, 3, CV_8U, cv::Scalar(1) );
cv::gpu::GMG_GPU gmgGpu
gmgGpu.initialize ( cv::Size ( 1600, 1200 ) );
cv::gpu::GpuMat gpuForeground;
cv::Mat rgbForeground;
for ( int i = 0; i < 500; i ++ )
{
    cap >> img; 
    cv::gpu::GpuMat gpuImg ( img );    
    gmgGpu.operator()(gpuImg, gpuForeground);
    gpuForeground.download ( finalForeground);
    cv::morphologyEx ( finalForeground, finalForeground, CV::MORPH_CLOSE, element );
    cvCvtColor ( finalForeground, rgbForeground, CV_GRAY2BGR );
 }

然后我有这样的错误:

错误c2664:'cvcvtcolor':无法将参数2从'cv :: mat'转换为'cvarr *'

没有可以执行此转换的用户定义转换运算符,否则操作员不能称为

有人可以给出任何解决此错误的建议吗?谢谢。

您可能不应该混合C和C 符号。

尝试使用 cv :: cvtcolor 而不是cvcvtcolor

关于您的第二个问题,您是否使用CV :: CVTCOLOR具有三个通道的输入和输出?