繁体   English   中英

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

[英]Convert binary image into RGB in OpenCV

我正在使用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,输入和输出都有三个通道?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM