用cvCvtColor转化RGB彩色图像为灰度图像时发生的小失误

版本信息

MAC版本:10.10.5
Xcode版本:7.2
openCV版本:2.4.13


在运行程序的时候发现cvCvtColor的地方程序报错

error: (-215) src.depth() == dst.depth() in function cvCvtColor

调试回去的时候回去看了看src和dst的depth变量,原图是正常的8,新图的时候depth==-2147483640。
。。。。。。
(我明明是对着网络代码抄的啊!!!
阿列,等等,定义dst变量好像有什么不对啊。。。)

IplImage* out = cvCreateImage(cvGetSize(in),IPL_DEPTH_8S,1);

(s。。。。。)
万恶的代码补全害死人,最后把IPL_DEPTH_8S改成IPL_DEPTH_8U,结果运行成功。

总结:

查看cvCreateImage的源代码时,他是这么定义的:

CVAPI(IplImage*)  cvCreateImage( CvSize size, int depth, int channels );

也就是说一开始我当初的笔误造了新图像的depth参数出了问题。最后再通过源代码对这两个宏定义的变量进行区分吧!

#define IPL_DEPTH_8U     8
#define IPL_DEPTH_8S  (IPL_DEPTH_SIGN| 8)
#define IPL_DEPTH_SIGN 0x80000000
  0x80000000 | 8
==2147483648 | 8
==2147483656//用int depth变量储存导致溢出问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值