opencv 中关于rgb范围的问题

    技术2022-05-19  23

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

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

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

    ~~~~~~~~~~~~~~~~~~~~~华丽的分割线~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


    最新回复(0)