VC下使用OpenCV最好先修改一下结构体IplImage中的数据指针imageData的类型...

2016-4-7日注:后来我发现我这篇博文中提到的观点非常不规范,详情可参见我的博文点击打开我的博文


欢迎大家加入图像识别技术交流群:271891601,另外,特别欢迎成都从事图像识别工作的朋友交流,我的QQ号2487872782
-----------------------------------------------

VC下使用OpenCV最好先修改一下结构体IplImage中的数据指针imageData的类型,否则你对图像数据的操作全是乱的,为啥?这篇文章详细解释~

OpenCV中定义的imageData是char *类型 这个指针对应的数据在内存中占一个字节,其范围是-128~127 而我们的灰度图像的范围是0~255 这下就明白了为啥要改了吧!

我曾经为这个问题折腾了两天,因为没有改这个指针的类型,同样的算法,MATLAB和VC中出来的结果完全不一样,最后发折腾了半天,发现这个指针的数据类型不对!

那么小伙伴们肯定要问怎么改呢?

很简单,在OpenCV的cpp文件中选中IplImage,再右键,转到定义处,然后就进入相关的头文件中,将 char * imageData修改为 unsigned char *imageData; 即可!

你可能感兴趣的:(VC下使用OpenCV最好先修改一下结构体IplImage中的数据指针imageData的类型...)