在用到opencv中出现
找这个bug找了好久,网上有这样几种说法:
1.check这两个图或者矩阵是不是初始化了
2.如果初始化了,初始化的大小是不是一样,即两者有没有相同的长宽
3.两者的depth深度是不是一样,即是不是一个是三通道的,一个是单通道的。
或者一个是单通道32位浮点类型,一个是单通道8位整形类型
还是没解决的话,那么接着往下看
如果你用的是以下代码,
那么你要检查你 cvsetimageroi 这个函数是否执行成功,因为在cvsetimageroi函数中有一个cvrect结构,
如果你的roi区域因为 img_width,img_height 而超出图片部分,那么就会造成和上面说的第二种情况冲突
诶,,,折腾我2小时了,擦!效率太低了!!!
ps:忘了说解决方法了,在cvsetimageroi之前,判断下是否超出图片区域。。。额,等于没说,总之自己加个判断吧
或者用以下方式:
iplimage *psubimg =cvgetimage(cvgetsubrect(pimg, cvcreatematheader(100, 100, cv_8uc1),cvrect(0, 0, 100, 100)), cvcreateimageheader(cvsize(100, 100), 8,1));
这个函数的用法,附上个链接