我需要将具有3个通道的CV_8U图像转换为必须是单通道CV_32S的图像。但是当我试图这样做时,我得到的图像全是黑色的。我不明白为什么我的代码无法正常工作。OpenCV:将CV_8UC3图像转换为C++中的CV_32S1图像
我正在处理灰度图像,这就是为什么我将3通道图像分成单通道图像的矢量,然后只处理第一个通道。
//markers->Image() returns a valid image, so this is not the problem
cv::Mat dst(markers->Image().size(), CV_32SC1);
dst = cv::Scalar::all(0);
std::vector<cv::Mat> vectmp;
cv::split(markers->Image(), vectmp);
vectmp.at(0).convertTo(dst, CV_32S);
//vectmp.at(0) is ok, but dst is black...?
在此先感谢您。
你为什么不先做灰度转换,即考虑所有三个颜色通道? – 2013-03-11 11:24:07