我是靠谱客的博主 苗条微笑,最近开发中收集的这篇文章主要介绍VS2017+OpenCV findContours函数出现中断的解决方案,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

出现的问题 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函数出现中断的解决方案所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(40)

评论列表共有 0 条评论

立即
投稿
返回
顶部