我使用OpenCV 2.4.3進行前景檢測。我想將二進制的結果前景轉換成RGB圖像。我的代碼是這樣的:在OpenCV中將二進制圖像轉換爲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':無法從 'CV ::墊' 轉換參數2「CvArr *」
無可用的能夠執行這種轉換,或操作員不能被稱爲用戶定義的轉換運算符
有人可以給出處理這個錯誤的建議嗎?謝謝。
你是什麼意思? Opencv不會從無到有創造出色彩。如果這個圖像是灰色的,那麼很可能三個迴歸通道會被賦予相同的值,因此您仍然會看到一個BW圖像 – jlengrand