opencv 中关于rgb范围的问题

博主分享了在学习OpenCV过程中遇到的RGB值存储问题。由于char类型的RGB值在不同编译器中可能被视为有符号或无符号,导致范围在-128~127或0~255之间变化,这在处理图像时可能会引起错误。在VS2010下,使用unsigned char指针访问像素可确保范围在0~255内。
摘要由CSDN通过智能技术生成

      学习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]


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值