使用"Opencv"时遇到terminate called after throwing an instance of 'cv::Exception'的问题的解决方案
这个问题的全称为
terminate called after throwing an instance of ‘cv::Exception’
what(): OpenCV(3.4.16) /home/seu/wsh/study/ch5/opencv-3.4.16/modules/imgproc/src/median_blur.dispatch.cpp:283: error: (-215:Assertion failed) !_src0.empty() in function ‘medianBlur’
针对这个问题啊,我呢很是苦恼,费了九牛二虎之力,最终啊,还是解决了。
首先呢,先说一下环境,这个呢是在ubuntu上使用opencv时遇到的问题。就是学习《视觉SLAM十四讲》时,第五讲遇到的问题,在此记录一下,避免后面的人采坑。
经过我在网上查了查,有人说是opencv安装时,安装的问题或者是依赖没有安装的问题。 这里是对应的解决方案.
经过我一顿操作,结果呢
还是这样。。。
然后我就又找了一个回答,就是上边那个链接下面的那个评论,
我试了一下,结果
还是这样。。。我这暴脾气,瞬间就发飙了,
我非要解决它,然后又找了一种解决方案.
这个上面讲去掉 这个 Mat img1 = imread(“1.jpg”,0); 括号里面的0
变成这样 Mat img1 = imread(“1.jpg”); //imread括号中不加0
我试了试,结果
还是这样,我就又试这种方案.
结果还是没解决。当我看到这种方案.时,开始怀疑,是不是代码的问题,我觉的高博的代码应该不会出现这种问题啊。
如果以上提供的记住方案你们就已经解决了,那下边就不用看了。
如果以上还没解决那么有可能你和我一样,有点轴。。。
最后呢,我就把要加载的两张图片left.png,right.png复制到可执行文件的目录下,
也就是这里,文件放的地方不对,不在应该的路径下
// 文件路径
string left_file = "./left.png";
string right_file = "./right.png";
// 读取图像
cv::Mat left = cv::imread(left_file,0);
cv::Mat right = cv::imread(right_file,0);
然后 运行 结果
成功了。。。奇妙,我以为,图片位置放置的不对它会报错提醒我:当前文件夹下没有那两个文件。居然是这个原因,成功给自己整笑了。不管怎样,算是解决了,以后吸取教训。。。
文章出处登录后可见!
已经登录?立即刷新