如何解决即使图像较小小于200〜像素,opencv :: findContours也会崩溃
我正在尝试使用OpenCV获取轮廓点 我使用的是openCV 2411,因为我的主要应用程序可以使用32位,而Opencv的较新版本仅为64位。我的代码是;
Mat src = imread(filename,CV_LOAD_IMAGE_ANYDEPTH);
Mat gThreshold = Mat(src.rows,src.cols,CV_8U);
threshold(src,gThreshold,128,255,CV_THRESH_BINARY);
imshow("thres",gThreshold);
waitKey(0);
Mat dst = Mat(src.rows,CV_8UC4);
std::vector<std::vector<cv::Point> > contours;
vector<Vec4i> hierarchy;
findContours(gThreshold,contours,hierarchy,CV_RETR_CCOMP,CV_CHAIN_APPROX_SIMPLE);
int idx = 0;
for (; idx >= 0; idx = hierarchy[idx][0])
{
Scalar color(rand() & 255,rand() & 255,rand() & 255);
drawContours(dst,idx,color,1,8,hierarchy);
}
imshow("con",dst);
waitKey(0);
return 1;
通常,此代码适用于较小的图像(小于200x200像素),但是我无法获得大于此尺寸的任何结果。每次都会崩溃。但是在显示阈值和轮廓图像后崩溃。
我尝试了不同类型的图像,但没有任何变化。 我搜索了stackoverflow,并且遇到了一些相同的问题,但是我尝试了所有答案,但都没有改变。 我使用发布模式,并且库还可以。这是关于32位工作的吗?还是我想念什么?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。