Unhandled exception at 0x00007FFE7BFD8A5C in wb.exe: Microsoft C++ exception: std::out_of_range at m

来源:互联网 发布:用友软件 主要客户 编辑:程序博客网 时间:2024/05/01 06:42

在执行C++ imshow代码是出现 如下错误:

第一次类似报错 : 另一个报错博文中 中 执行imshow函数时的报错


第二次该类报错

[cpp] view plain copy
 print?在CODE上查看代码片派生到我的代码片
  1. vector<Mat> channels;  
  2. split(ycbr, channels);  
  3. Lu = channels.at(0);  
  4. Cr = channels.at(1);  
  5. Cb = channels.at(2);  
  6. alpha = channels.at(3);  
  7.   
  8. imshow("Lu", Lu);  
  9. //waitKey(600);  

Unhandled exception at 0x00007FFE7BFD8A5C in wb.exe: Microsoft C++ exception: std::out_of_range at memory location 0x000000C38835CD40.



[cpp] view plain copy
 print?在CODE上查看代码片派生到我的代码片
  1. Mat ycbr = Mat::zeros(row, col, CV_8UC4);  
[cpp] view plain copy
 print?在CODE上查看代码片派生到我的代码片
  1. split(ycbr, channels);  


原因: 检查channels的vector向量尺寸,发现 size == 3, 虽然ycbr定义时候定义为 CV_8UC4,是4通道,但是由split函数进行通道分割后,只产生了三个channel。 因此,出现


[cpp] view plain copy
 print?在CODE上查看代码片派生到我的代码片
  1. alpha = channels.at(3); 导致报错哦~~~~  


[cpp] view plain copy
 print?在CODE上查看代码片派生到我的代码片
  1. </pre><p></p><p><span style="font-size:18px"><img src="http://img.blog.csdn.net/20161013102228843?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" /></span></p><p></p><p><img src="http://img.blog.csdn.net/20161013102243796?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="" /></p><p></p><p><span style="font-size:18px">解决方案:</span></p><p><span style="font-size:18px"></span></p><p><span style="font-size:18px"></span><pre name="code" class="cpp">//alpha = channels.at(3);  // 问题所在  


第三次出现类似报错


[cpp] view plain copy
 print?在CODE上查看代码片派生到我的代码片
  1. vector<int> Ciny,Ciny2;  
  2. sortIdx(Ciny,Ciny2,SORT_DESCENDING);  

报错如下图:



报错具体原因:

sortIdx() 输入参数  mat 是可以的 ,如: http://blog.csdn.net/qing101hua/article/details/52817373 中第一个示例

但是vector 不行 

解决:暂无

第四次报错:

[cpp] view plain copy
 print?在CODE上查看代码片派生到我的代码片
  1. Rect rect(tst.rows-10, tst.cols - 10, 3, 8);  
  2. cout << "rect : " << rect << endl;  
  3. Mat roiTst = tst(rect);  


0 0
原创粉丝点击