概述
出现的问题 OpenCV中出现“Microsoft C++ 异常: cv::Exception,位于内存位置 0x某某 处。”的异常。
在用opencv311+VS2017做图像处理相关,遇到了程序不报错但是一运行就中断的问题,“Microsoft C++ 异常: cv::Exception,位于内存位置 0x某某 处。”
提示的错误位置在findContours函数那一行。
找了很多解决方案都没有得到解决,最终发现是findContours函数输入的图片格式不正确,才导致的中断。
可能我们的问题不相同,但是可以参考,看一看是不是传入图片格式的问题。
void cv::findContours ( InputOutputArray image,
OutputArrayOfArrays contours,
OutputArray hierarchy,
int mode,
int method,
Point offset = Point()
)
函数定义如上,输入的第一个参数,InputArray类型的image,即输入的源图像,是Mat类型的8位单通道图像。即,图像的非零像素被视为1,0像素值被保留为0,所以图像为二进制。我们可以使用compare()、inrange()、threshold()、canny()等函数获得二进制图像。
最终的代码是酱紫的:
binImage是我从视频帧currentFrame得到的二值图像
cvtColor(currentFrame, binImage, CV_BGR2GRAY);
vector<vector<Point>> contours;
findContours(binImage, contours, CV_RETR_EXTERNAL, CHAIN_APPROX_NONE);
问题解决啦!程序不会出现中断可以运行啦!
最后
以上就是苗条微笑为你收集整理的VS2017+OpenCV findContours函数出现中断的解决方案的全部内容,希望文章能够帮你解决VS2017+OpenCV findContours函数出现中断的解决方案所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复