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