2010-06-10 34 views
0

img_hsv是一個hsv圖像的Mat元素!指針uchar *問題在opencv vC++ 2008

當我給cout<<*img_hsv.data+10;它給出像素的真實值,即79作爲輸出。 但是當我分配uchar * a=img_hsv.data+10;它給了我一些其他的價值... 你能解釋我爲什麼是這種情況?謝謝!

回答

0

在第一種情況下,您首先獲取指針img_hsv.data內容,然後將10添加到該值並顯示它。在第二種情況下,您只需將指針遞增10個單位。這個增加的值指向一個內存位置。因此a將包含該位置的地址,因此它將與打印值不同。如果你的意思是* a給出了不同的值,那麼這是因爲運營商的優先權。在第一種情況下,指針首先被解除引用,然後將10添加到解除引用的值中,而在第二種情況下,您將首先增加指針,然後解除引用它。