OpenCV Error: Assertion failed (src.size == dst.size && src.channels() == dst.channels()) in cvConvertScale
发现问题:在做kinect采集的深度图去噪的时候遇到了cvConvertScale格式转换的问题。
OpenCV Error: Assertion failed (src.size == dst.size && src.channels() == dst.channels()) in cvConvertScale, file /home/lzp/opencv-2.4.9/modules/core/src/convert.cpp, line 1372
terminate called after throwing an instance of 'cv::Exception'
what(): /home/lzp/opencv-2.4.9/modules/core/src/convert.cpp:1372: error: (-215) src.size == dst.size && src.channels() == dst.channels() in function cvConvertScale *** 崩溃,返回值:0 ***
使用的KDevelop IDE单步调试,很快找到了出错语句。
cvConvertScale(frameSet[0], image8u, 255.0 / 4096.0, 0);
标记一下ConvertScale的用法
-->使用线性变换转换数组
void cvConvertScale( const CvArr* src, CvArr* dst, double scale=1, double shift=0 ); src 输入数组.
dst 输出数组
scale 比例因子.
shift 该加数被加到输入数组元素按比例缩放后得到的元素上.
总结出现该错误的原因有:
1.check这两个图或者矩阵是不是初始化了 
2.如果初始化了,初始化的大小是不是一样,即两者有没有相同的长宽 
3.两者的depth深度是不是一样,即是不是一个是三通道的,一个是单通道的。 
或者一个是单通道32位浮点类型,一个是单通道8位整形类型
排查代码和图像数据源,找到了我的问题所在。
cout << "width" << temp->width << "height" << temp->height
<< "channel" << temp->nChannels
<<"depth" << temp->depth << endl;
运行结果:
width:640,
height:480,
channel:3,
depth:8
深度图像因为未知原因,变成了3通道的图像!
参考资料:
http://blog.csdn.net/skyndsc/article/details/53870561
OpenCV Error: Assertion failed (src.size == dst.size && src.channels() == dst.channels()) in cvConvertScale的更多相关文章
- 报错:OpenCV Error: Assertion failed (src.size() == dst.size() && src.type() == dst.ty pe()) in unknown function, file ..……
		在用cvDilate函数的时候,老是导致程序中断,报错如下: OpenCV Error: Assertion failed (src.size() == dst.size() && s ... 
- [error]OpenCV Error: Assertion failed (ssize.width > 0 && ssize.height > 0) in resize, file modules/imgproc/src/resize.cpp, line 3289
		error OpenCV Error: Assertion failed (ssize.width > && ssize.height > ) terminate call ... 
- OpenCV Error: Assertion failed (scn == 3 || scn == 4) in cv::cvtColor
		在python用cv2.imread()读取图片的时候一直报错,检查了图片的绝对路径是存在的. 报错的图片用skimage.io.imread()是可以读的. 查了一下,有可能是原图片文件有什么嵌入错 ... 
- error:  OpenCV Error: Assertion failed (0 <= roi.x && 0 <= roi.width && roi.x + roi.width <= m.cols && 0 <= roi.y && 0 <= roi.height && roi.y + roi.height <= m.rows) in cv::Mat::Mat
		问题原因: You are probably working outside of the image dimensions. Does any of the values you pass to t ... 
- line 352 Error: Assertion failed (size.width>0 && size.height>0) in cv::imshow
		OpenCV 使用 createtrackerbar()报错问题 Error Error: Assertion failed (size.width>0 && size.heig ... 
- error:Assertion failed ((unsigned)i0 < (unsigned)size.p[0]) in cv::Mat::at
		问题原因: 访问像素时指针越界造成的 解决办法: 1.检查指针下标是否正确 2.row和col是否写反了 
- error: (-215:Assertion failed) size.width>0 && size.height>0 in function 'cv::imshow'
		用Python打开图像始终提示错误 error: OpenCV(4.1.1) C:\projects\opencv-python\opencv\modules\highgui\src\window.c ... 
- opencv 中出现错误 -215:Assertion failed
		cv2.error: OpenCV(4.0.1) D:\Build\OpenCV\opencv-4.0.1\modules\imgproc\src\color.cpp:181: error: (-21 ... 
- (C++) Assertion failed: !"Bad error code", file VMem.c, line 715
		(C++) Assertion failed: !"Bad error code", file VMem.c, line 715 Misc error. myInterface F ... 
随机推荐
- DB2 建表,添加字段,删除字段,修改字段等常用操作
			转载:http://blog.sina.com.cn/s/blog_67aaf4440100v01p.html,稍作修改. --创建数据库 create database Etp; --连接数据库 c ... 
- 分布式 task_master / task_worker
			17:08:0317:08:04 在Thread(线程)和Process(进程)中,应当优选Process,因为Process更稳定,而且,Process可以分布到多台机器上,而Thread最多只能分 ... 
- HDU100题简要题解(2080~2089)
			//2089之前忘做了,周二C语言课上做,至于2086,写题解的时候突然发现之前的做法是错的,新的解法交上去CE,等周二再弄吧,其余题目暂时可以放心 HDU2080 夹角有多大II 题目链接 Prob ... 
- 这篇SpringBoot整合JSON的学习笔记,建议收藏起来,写的太细了
			前言 JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式,目前使用特别广泛. 采用完全独立于编程语言的文本格式来存储和表示数据. 简洁和清晰 ... 
- Folx使用教程:怎么通过设置标签分类下载内容
			很多Mac OS下载软件从网上下载各种各样的文件,一般默认都会存放在"下载"文件夹中.如果不是经常整理"下载"文件夹,久而久之,该文件夹会变得庞大而杂乱. 如果 ... 
- hashmap(有空可以看看算法这本书中对于这部分的实现,很有道理)
			//转载:https://baijiahao.baidu.com/s?id=1618550070727689060&wfr=spider&for=pc 1.为什么用HashMap? H ... 
- python升级版本
			前言 目前大部分使用的3.6或者3.7以及更低版本存在不少问题,随着python的更新很多问题得到修复并且具有更多新的功能. 更新 3.y.x版本升级到3.y.z 下载需要升级的exe安装包点击upg ... 
- 【模板】【P1182】数列分段II——二分答案
			题意:给定一列数,分成m段,使每段和的最大值最小. 考虑二分最小段和size,答案显然满足单调性.可以在每次check中累加数列元素判断当前组的总和是否在size以内.由于序列元素均为非负整数,前缀和 ... 
- Matlab 画图1
			plot函数 plot最简单的是plot(x,y),其中,x,y是一组数据 如果要画出\(y=x^2\)的图像 在Command Window中输入 x =[1 2 3]; y =[4 5 6]; p ... 
- 为什么学完C语言觉得好像没学一般?
			不少同学从Hello world学到文件操作之后,回顾感觉会又不会? 学会了又感觉没学会?这种不踏实.模糊虚无的感觉? 原因在于编程不同于理论学科,你听懂和理解了理论就可以运用. 比如历史地理,看 ... 
