我正在使用 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 *”
没有可以执行此转换的用户定义转换运算符,或者无法调用该运算符
有人可以就处理此错误提出任何建议吗?谢谢。