OpenCV mat::在抛出异常时
OpenCV mat::at throwing exception
此代码仅在调试模式下抛出异常。在Release中,它给出了0的预期输出。
#include <opencv2opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main(){
Mat image;
image = Mat::zeros(5,5,CV_8UC1);
try{
cout<< image.at<unsigned int>(1,1)<<"n";
}
catch(Exception ex){
cout<< ex.msg;
}
cin.get();
return 0;
}
抛出的异常的文本是
OpenCV错误:断言失败(dims<=2&&;data&&;(无符号)i0<(无符号)size.p[0]&;(无符号)(i1*DataType<_Tp>::通道)<(unsigned)(size.p[1]*通道s())&;(((sizeof(size_t)<lt;28)|0x8442211)>>((数据类型<_Tp>::深度)&((1<<3)-1))*4)&15) ==elemSize1())在未知函数中,文件c: \users\tim\documents\code\opencv\build\include\opencv2\core\mat.hpp,第537行
OpenCV的版本是2.4.6,可执行文件动态链接到调试库。
-
发生异常是因为您将image定义为无符号char数组,但在<>内部使用了无符号int作用在<>必须获得和矩阵相同的类型,即无符号字符。否则,它会抛出一个异常。
-
当您向cout函数提供无符号字符时,它假设您试图打印的是字符(char)而不是数字。如果您想查看其数值,请将其转换为int:
cout<lt;(int)image.at<无符号字符>(1,1)<lt;"\n";
相关文章:
- 从构造函数抛出异常时如何克服内存泄漏
- 函数如何通知用户它基于函数原型抛出异常?
- 在缺少函数重载时抛出异常,并带有 std::variant 而不是编译时错误
- VisualStudios 会抛出异常,而代码块不会 [C++]
- 如果不包含 pthread,为什么 GCC 的线程标准库实现会抛出异常?
- ZMQ::send() 抛出异常并终止 QNX 进程.为什么以及如何从中恢复?
- new(std::nothrow) int[n] 抛出异常
- 为什么g_object_set抛出异常(vcruntime140.dll)?
- 你能防止 std::regex 在无效表达式上抛出异常吗?
- C++子线程抛出异常
- 我们应该在抛出异常之前取消分配内存吗
- 有没有一种方法可以让OpenCLC++绑定为所有错误抛出异常
- 为什么访问模板化变体作为返回值抛出异常
- 如何实现,错误分配中止而不是抛出异常
- std::p riority_queue::p op什么时候会抛出异常
- 在0x5914F3BE抛出异常(基于.dll)
- std::vector 默认构造函数可以抛出异常吗?
- OpenCV SVM 在火车上抛出异常,"Bad argument (There is only a single class)"
- OpenCV 的 calcOpticalFlowPyrLK 抛出异常
- opencv:使用cout与Mat对象抛出异常