有关Error - RtlWerpReportException failed with status code :-1073741823.的解决方法
来源:互联网 发布:美亚 支付宝 知乎 编辑:程序博客网 时间:2024/05/18 11:46
先上一段有关opencv的代码。
bool Image_Split(){ vector<Mat> channels; Mat srcImage = imread(IMAGE); Mat logo = imread(LOGO); Mat Blue_channel; //判断采集到的srcImage和logo图像是否为0 if(!srcImage.data) { cout << "加载原图片失败!"<< endl; return false ; } if(!logo.data) { cout << "加载logo图片失败!" << endl; return false ; } //从srcImage中分离三通道(实质为分成三个向量,即数组) split(srcImage,channels); //取该通道的颜色为蓝色 Blue_channel = channels.at(0); //把分离的通道的图片取自己感兴趣的一部分,即是Rect(),把logo图案与之按照一定权重贴在Rect()部分上 addWeighted(Blue_channel(Rect(0,583,logo.cols , logo.rows)), 0.5 ,logo, 0.5, 0.0, Blue_channel(Rect(0 ,583 ,logo.cols, logo.rows))); //最后把单色调的三种图片归并为三通道图片 merge(channels,srcImage); namedWindow("测试图.jpg"); imshow("测试图.jpg",srcImage); return true;}
这段代码看似没问题,逻辑上也是合情合理,而且编译也通过,然而并不能执行。
一旦执行就会出现Error - RtlWerpReportException failed with status code :-1073741823这个问题。那么,如何解决这个问题呢?很简单,在定义logo 的时候,让Mat logo = imread(LOGO, 0);
取0是什么意思呢?在imread函数中,0即是CV_LOAD_IMAGE_GRAYSCALE
CV_LOAD_IMAGE_GRAYSCALE- 如果取这个标识的话,始终将图像转换成灰度1
那为甚么这样就没错了?因为,这其实就是一个内存引发的问题。我们知道,如果imread采样图片使之未默认值,即是1,此时便是CV_LOAD_IMAGE_COLOR
CV_LOAD_IMAGE_COLOR- 如果取这个标识的话,总是转换图像到彩色一体
这个图片为3通道,存储方式为0xFF FF FF(设最大),如果我们srcImage采集的图片是默认,那么此时应该为0xFF FF FF(设最大),如果我们使用split()函数,此时Blue_channel得到的应该为单通道的数组,范围在0~255之间,即是0x00~0xFF,此时如果我们采集的logo图片为三通道图片,即是imread默认为1,执行addWeighted()函数的时候,就要把三通道的logo图片(大小为0~0xFF FF FF)与单通道图片Blue_channel(范围在0~0xFF)加权叠加,而后赋值于Blue_channel,此时必定会发生溢出,内存报错。(logo的大小大于Blue_channel)
所以我们可以认为Error - RtlWerpReportException failed with status code :-1073741823,这个就是内存问题,也就是Linux下老生常谈的“段错误”。
- 有关Error - RtlWerpReportException failed with status code :-1073741823.的解决方法
- Qt Windows 安装问题RtlWerpReportException failed with status code :-1073741823
- error: command 'gcc' failed with exit status 1 解决方法
- 关于error: command 'gcc' failed with exit status 1错误的解决方法的一些总结
- 关于Python安装模块出现error: command 'gcc' failed with exit status 1错误的解决方法
- windows下使用pip安装模块发生“failed with error code 1”的解决方法
- error: command 'gcc' failed with exit status 1 的解决办法
- error: command 'gcc' failed with exit status 1 的解决办法
- error: command 'gcc' failed with exit status 1 的解决办法
- 【解决方法】Setup script exited with error: command 'cc' failed with exit status 1
- 在Mac上安装pyspider时出现 error: command 'cc' failed with exit status 1 的解决方法
- xcode编译时候出现clang: error: linker command failed with exit code 1 (use -v to see invocation)的解决方法
- 关于axios特别说明request failed with status code 404
- error: linker command failed with exit code 1 (use -v to see invocation)错误解决方法
- clang: error: linker command failed with exit code 1 (use -v to see invocation)解决方法
- 出现:clang: error: linker command failed with exit code 1 (use -v to see invocation),解决方法
- Preverification failed with error code 1.
- OPatch failed with error code 73
- Java数据结构-树的应用-二叉查找树
- P2P、P2C 、O2O 、B2C、B2B、 C2C的概念解析
- Android手机网络代理
- x86汇编指令详解 .
- 安卓常见异常处理
- 有关Error - RtlWerpReportException failed with status code :-1073741823.的解决方法
- Switch语句的一个坑 & 一个妙用
- ZY项目经验教训
- 编码之痛(上)编码的来龙去脉
- more指令的简单实现
- iOS自动处理键盘事件的第三方库:IQKeyboardManager
- 开发环境介绍
- iOS UIWebView的使用
- C++编程