opencv vc ++ 2008中的指针uchar *问题

时间:2010-06-10 07:45:21

标签: visual-c++ pointers opencv

img_hsv是hsv图像的Mat元素!

当我给cout<<*img_hsv.data+10;时,它给出了像素的真值,即79作为输出。 但是当我指定uchar * a=img_hsv.data+10;时,它给了我一些其他的价值...... 能告诉我为什么会这样吗?谢谢!

1 个答案:

答案 0 :(得分:0)

在第一种情况下,您首先获得指针img_hsv.data内容,然后将10添加到该值并显示它。在第二种情况下,您只需将指针递增10个单位。该递增的值指向存储器位置。因此a将包含位置的地址,因此它将与打印值不同。如果你的意思是* a给出不同的值,那么这是因为运算符优先级。在第一种情况下,首先取消引用指针,然后将10添加到解除引用的值,在第二种情况下,首先递增指针然后取消引用它。