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]
好了,就是这样~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~华丽的分割线~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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]
好了,就是这样~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~华丽的分割线~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
相关文章推荐
- 关于opencv安装问题
- 关于wince 下LCD 控制器设置成RGB888 24bit 的相关问题
- OpenCV 2.3.1 中关于cvCaptureProperty()定位不准的问题
- 关于C# using 作为定义范围的问题
- 关于opencv中Vector内存释放或者元素清空的问题
- 关于OpenCV图像操作的默认参数问题
- opencv中Bayer 图像到RGB图像装换的问题
- 关于为什么需要设置request.setCharacterEncoding以及适用范围问题
- 关于opencv打开摄像头成灰色问题
- 关于在console中查看opencv Mat 矩阵元素的问题
- 关于百度地图API显示地区范围控制的问题
- 关于opencv 无法成功读视频的问题
- 关于opencv编译出现importerror:../../lib/libopencv_core.so cannot share or open问题
- 学习OpenCV——关于三通道的CvMat的求和问题
- 关于opencv中不能读取视频avi的问题
- 关于CMAKE中查找自定义路径OpenCV的问题
- 关于Opencv python中 cvmat 和ndarray的转换问题
- 关于OpenCV图像操作的默认参数问题
- 关于android 手机适配的范围问题
- 关于opencv1.0中avi视频不能打开问题