Визуализация OpenCV для понимания арифметики указателей
Я только учусь OpenCV. В книге, которую я читаю, рекомендуется, чтобы для операций, в которых мне нужно было коснуться каждого пикселя, я использовал двойной цикл for с арифметикой указателя, stepWidth и т. Д., Чтобы перейти от одного к следующему.
Я с трудом представляю себе, как именно выглядит IplImage в памяти: RGBRGB или RRRGGGBBB, все эти числа, упаковывают ли они их в более крупные 32-битные, если есть 8-битные изображения... и т. Д., И т. Д.
Кто-нибудь знает визуальные или может объяснить основной способ, которым распределяются изображения OpenCV и какие типы данных идут куда? Я понимаю, что это зависит от того, будут ли пиксели или глиссирование, и т. Д., Но было бы здорово увидеть визуально несколько примеров с количеством байтов, чтобы лучше понять, как выполнять итерации
Спасибо!
1 ответ
Внутренний формат - 3x8 байт, по одному на каждый пиксель в порядке BGR.
строка0: BGR(столбец0) BGR(столбец1) .......
Если ширина изображения * 3 байта не кратна 4, следующая строка изображения начинается на следующей границе 4 байта. Это связано с тем, что на большинстве современных компьютеров доступ к памяти обычно быстрее на 32-битных границах.