OpenCV visual用于理解指针算术

时间:2012-11-24 00:58:55

标签: c pointers opencv pointer-arithmetic

我刚刚学习OpenCV。我正在阅读的书建议,对于我需要触摸每个像素的操作,我使用带有指针算术,stepWidth等的双循环来从一个到另一个。

我很难直观地看到IplImage在内存中的样子,RGBRGB或RRRGGGBBB是这些所有数字,如果有8位图像,它们会将它们打包成更大的32位......等等,等。

有没有人知道视觉或可以解释分配OpenCV图像的基本方式以及哪些数据类型去哪里?我意识到它取决于是像素还是刨光等,但是在视觉上看到一些带有字节计数的例子能够更好地理解如何迭代,这将是很酷的

谢谢!

1 个答案:

答案 0 :(得分:1)

内部格式为3x8bytes,BGR顺序为每个像素一个。

row0:BGR(column0)BGR(column1).......

如果图像的宽度* 3bytes不是4的倍数,则图像的下一行将在下一个4字节边界处开始。这是因为在大多数现代机器上,32位边界的内存访问通常更快

请参阅Fastest way to extract individual pixel data?