用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变量储存导致溢出问题
本文来自博客园,作者:MrYu4,转载请注明原文链接:https://www.cnblogs.com/MrYU4/p/15778898.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了