Я пытаюсь проанализировать номерные знаки с кодом C ++.Дело не в том, как быстро туда добраться, потому что я хочу сам приступить к процессу создания этого кода C ++ и научиться этому.
Проблема:
Байты в файле растрового изображения не складываются!Файл растрового изображения: http://ictmdeklerk.nl/cor.bmp
Почему они не суммируются:
Я использую 24-разрядные растровые изображения (* .BMP файлы).Я знаю, что растровое изображение создается с использованием BMPFILEHEADER и BMPINFOHEADER, которые вместе занимают 54 байта.
Теперь изображение имеет ширину 1350 пикселей и высоту 740 пикселей, в результате чего получается 999000 пикселей.
Поскольку файл 24-битный, на пиксель приходится 3 байта.999000 * 3 = 2997000 байт, необходимых для изображения.Но размер изображения (biSizeImage) в BMPINFOHEADER говорит, что изображение составляет 2998480 байт!Размер файла составляет 2.998.534 байта - 54 байта заголовка = 2.998.480.Таким образом, заголовок все еще 54 байта.Никаких дополнительных метаданных там нет.Когда я делю 2.998.480 / 3 байта на пиксель, я получаю 999493,33 пикселей!Это даже не круглое число!
Это сводит меня с ума.Как Windows узнает, как показать это изображение без смещения пикселей, цветов или чего-либо еще?
Может кто-нибудь объяснить, откуда взялись эти дополнительные пиксели / байты?И как с ними бороться?
Заранее спасибо!