从OpenCV文档中可知,cv::findContours函数中的源图像是const类型,但在我的应用程序中却出现了一些奇怪的问题。我使用cv::inRange函数获取特定颜色的阈值图像,并使用cv::moments函数获取阈值图像中白色像素的中心,这个功能正常运行。
此外,我还想实现查找最大轮廓并定位该轮廓中心矩的代码。在代码中添加cv::findContours函数后,我发现输出结果出现了奇怪的行为,然后我想使用以下代码检查源图像的情况:
此外,我还想实现查找最大轮廓并定位该轮廓中心矩的代码。在代码中添加cv::findContours函数后,我发现输出结果出现了奇怪的行为,然后我想使用以下代码检查源图像的情况:
cv::Mat contourImage;
threshedImage.copyTo(contourImage); // threshedImage is the output from inRange
cv::findContours(threshedImage, contours, CV_RETR_LIST, CV_CHAIN_APPROX_NONE, cv::Point(0,0));
cv::Mat temp;
cv::absdiff(threshedImage,contourOutput, temp);
cv::namedWindow("absdiff");
cv::imshow("absdiff",temp);
接下来,输出显示threshedImage和contourImage之间存在差异。这是怎么可能的?有人用cv::findContours得到了类似的结果吗?