2012-11-24 81 views
0

我剛剛學習OpenCV。我正在閱讀的書中建議,對於需要觸摸每個像素的操作,我使用double for循環和指針算術,stepWidth等從一個到另一個。OpenCV視覺理解指針算術

我很難直觀地看到IplImage在內存中看起來像什麼,是RGBRGB還是RRRGGGBBB,這些都是數字,如果有8位圖像,他們會將它們打包成更大的32位......等等等

有誰知道的視覺或可以解釋OpenCV圖像分配的底層方式和哪些數據類型去哪裏?我意識到它依賴於是否像素或刨等,但它會很酷,看到幾個例子說明與字節計數,以便能夠更好地瞭解如何迭代通過

謝謝!

+1

你爲什麼不只是打印出內存的十六進制轉儲,並親眼看看它是如何佈局? –

+0

的確,你會發現OpenCV的默認像素封裝實際上是BGR。 – karlphillip

+0

這是一個非常好的主意。我將如何打印出圖像的十六進制轉儲?那也會顯示000的未使用內存部分? – lollercoaster

回答

1

內部格式爲3x8bytes,BGR順序爲每個像素一個。

ROW0:BGR(column0)BGR(列1).......

如果圖像* 3字節的寬度不是4的倍數的圖像的下一行開始的接下來的4字節邊界。這是因爲內存訪問速度更快,通常是在32位的邊界上最現代化的機器

Fastest way to extract individual pixel data?