用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变量储存导致溢出问题
posted @   MrYu4  阅读(51)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示