OpenCV分割通道功能可能无法正常工作

时间:2014-10-06 18:02:53

标签: c++ image opencv image-processing

我遇到了这个问题。我有一个3通道图像(cv_32fc3),我想把它提取到单通道。我使用下面的代码来打印特定像素的值,但我得到了不同的结果。 使用

正确打印第一个cout语句
-0.178382 0 0

然而,第二个cout语句打印

-4.31602e+008 -4.31602e+008 -4.31602e+008

以下是代码:

Vec3f pix = img_origin.at<float>(1464,487);
cout<<pix[0]<<"\t"<<pix[1]<<"\t"<<pix[2]<<"\n";
Mat channels[3];
split(img_origin, channels);
cout<<channels[0].at<float>(1465,488)<<"\t"<<channels[1].at<float>(1464,487)<<"\t"       <<channels[2].at<float>(1464,487)<<"\n";

我已经搜索并阅读了许多示例并尝试了很多案例,但是现在我迷失了。请帮助,任何建议表示赞赏。

我认为Bug in OpenCV2.3 cv::split() function. Identical values in all 3 channels与我的问题有关,但事实并非如此。

0 个答案:

没有答案