您的位置:首页 > 运维架构

opencv 中关于rgb范围的问题

2011-03-06 22:06 274 查看
学习opencv已有一段时间了,可还是停留在菜鸟阶段,汗~~~,但从现在起要开始认真了,闲话不多说了,记录一下今天的心得吧。

opencv中图像的rgb值是用一个字节(char)进行存储的,我们知道char的范围在不同的编译器是不同的,有些认为是有符号的,因此表示范围是-128~127,但有些编译器是认为无符号(unsigned)的,所以才转换成int 类型进行计算时就出了问题,因为我是当成0~255处理的,那效果,听后现代化的,还好现在知道了。

例如:在vs2010下,如下方式访问像素时,范围是-128~127

((char*)(img->imageData + img->widthStep*y))[3*x+0]

((char*)(img->imageData + img->widthStep*y))[3*x+1]
((char*)(img->imageData + img->widthStep*y))[3*x+2]

而如下方式访问时,范围是0~255

((unsigned char*)(img->imageData + img->widthStep*y))[3*x+0]

((unsigned char*)(img->imageData + img->widthStep*y))[3*x+1]
((unsigned char*)(img->imageData + img->widthStep*y))[3*x+2]

好了,就是这样~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

~~~~~~~~~~~~~~~~~~~~~华丽的分割线~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: