opencv常见问题(1)Microsoft C++ 异常:cv::Exception

今天,在写程序的时候,突然报了个错误:
错误截图
想必大家遇到错误第一反应都是问度娘!
于是乎,我顺手百度了一下,果然,遇到与此类似的问题还真不少。
0x76BBA932 处(位于 OpenCV.exe 中)有未经处理的异常: Microsoft C++ 异常: cv::Exception,位于内存位置 0x00AEEF48 处。
但是,和我一样的问题却出现在不同的程序中,这就奇怪了。

首要任务
:检查环境配置,当然,我这里不多说,我是win10+vs2015
看了一下,重点检查连接器那部分,并没有错误,后来一想,我前面程序运行的没毛病,也没调用什么东东,环境变量不会自己修改的呀!

第二步
:有关图片路径问题
各种用”/”,不能用“\”之类的,那就改吧,动手改了一下,没解决,诶呀,这个之前读的也没问题,这个是会引起类似的问题,但是我把图片放在工程里,用的不是绝对路径,所以不影响。

第三步
:图片格式
这个问题是说可能把格式写成了”XXX.png.png”就是本身已经有扩展名了,但是隐藏了,结果你又手动添加了一次,把它当作了文件名,这种错误绝对不可能。
百思不得其解,内存问题,是存储格式吗?
写了这么多没贴代码,证明这个问题不是由于代码本身造成的。

可是
无解就得从代码看起了。
各种设断点,加imshow。最后发现我出错的代码行。
现在来说一下我出问题的那句代码,很简单的一句
imageROI = a(Rect(200,200, image.cols, image.rows));
这样看,没毛病。

再看看
rect函数到底怎么了。
猛然发现:
矩形左上角坐标设置的过大,导致内存出问题!
把200改成0,结果问题解决了。

欸:
不要总是寄希望于百度,具体问题还得具体分析!
有同样问题的你,是不是该用心看一下,你们使用的函数参数设置对了吗?

  • 26
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 14
    评论
### 回答1: 这是一个 Microsoft C++ 异常,具体是由 OpenCV 库中的 cv::exception 抛出的。它通常表示在使用 OpenCV 库时发生了误或异常情况。可能的原因包括输入参数误、内存分配问题、文件读取误等等。要解决此异常,需要仔细检查代码并确保输入参数正确、内存分配正确、文件读取正确等等。如果无法解决问题,可以尝试查看 OpenCV 的文档或寻求其他开发者的帮助。 ### 回答2: Microsoft C是一款广泛使用的编程语言,主要被应用于Windows平台的开发。在开发过程中,时常会出现编译、运行异常等问题,这些问题都需要开发者进行处理。 其中,cv::exception就是一种异常,它是由OpenCV图像处理库所引发的异常,也叫OpenCV异常。常见的情况是当OpenCV库在处理图像时,发现了不符合处理要求的图像,程序就会抛出该异常并停止运行。 按照惯例,出现异常误是程序开发过程中普遍存在的问题,给开发者带来了很多不便,但是对于cv::exception异常,我们也可以采取一些措施来预防和处理。 首先,可以通过加强对图像处理环节的判断和过滤,杜绝不正常的操作发生,可以有效减少异常产生的可能性。其次,在程序开发过程中,添加相关的异常处理机制,在程序抛出异常后能够及时捕获、处理并提示相应的误提示,避免后续操作的受影响。 除此之外,还可以通过加强代码的编写和调试,对程序进行全面的测试和调优,进一步降低出现异常误的概率,保障程序的顺利运行。 总之,cv::exception异常是一种常见的编程误,但是当我们采取适当的措施进行预防和处理时,就可以让程序更加稳定、健康地运行。 ### 回答3: Microsoft C++异常: cv::exception出现的情况很多,通常是OpenCV库中的图像处理函数执行异常时抛出的,比如读取图像失败、图像不合法、参数不正确等。该异常的出现也可能是由于用户在使用OpenCV库函数时传入的参数不正确或者没有按照函数要求正确设置一些参数导致的。 要解决这个问题,首先要确定引发异常的原因。如果是OpenCV库函数中出现异常,就需要检查代码是否正确,是否遵循了函数的规范。如果是参数设置不正确导致的异常,就要检查参数是否正确,并且仔细阅读相关文档来确保参数的正确设置。 当然,也可能出现OpenCV库的版本不兼容导致的异常。如果你的代码在一个新版本的OpenCV中编译通过,但在另一个版本中出现异常,可能是由于函数参数不同或者底层实现变化了。这种情况下,解决问题的最好方法是升级你的OpenCV库,或者回退到与你的代码兼容的OpenCV版本。 最后,你可以通过捕获异常并输出相关信息来调试程序。要捕获异常,你可以使用try-catch语句,在catch块中打印异常信息并执行相关处理。这样,你就可以更好地诊断问题,找到异常的根本原因,并解决异常问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值