【发布时间】:2013-02-26 06:00:39
【问题描述】:
我需要将具有 3 个通道的 CV_8U 图像转换为必须是单通道 CV_32S 的图像。但是当我尝试这样做时,我得到的图像全是黑色的。我不明白为什么我的代码不起作用。
我正在处理灰度图像,这就是为什么我将 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...?
提前谢谢你。
【问题讨论】:
-
为什么不先进行灰度转换,考虑所有三个颜色通道?
标签: c++ opencv type-conversion mat watershed