img_hsv是hsv图像的Mat元素!
当我给cout<<*img_hsv.data+10;
时,它给出了像素的真值,即79作为输出。
但是当我指定uchar * a=img_hsv.data+10;
时,它给了我一些其他的价值......
能告诉我为什么会这样吗?谢谢!
答案 0 :(得分:0)
在第一种情况下,您首先获得指针img_hsv.data
的内容,然后将10添加到该值并显示它。在第二种情况下,您只需将指针递增10个单位。该递增的值指向存储器位置。因此a
将包含位置的地址,因此它将与打印值不同。如果你的意思是* a给出不同的值,那么这是因为运算符优先级。在第一种情况下,首先取消引用指针,然后将10添加到解除引用的值,在第二种情况下,首先递增指针然后取消引用它。