C++ コードでナンバー プレートを分析しようとしています。私はこの C++ コードを自分で作成し、その方法を学習するプロセスに進みたいので、そこに早く到達する方法がポイントではありません。
問題:
ビットマップ ファイルのバイトが合計されません。ビットマップ ファイル: http://ictmdeklerk.nl/cor.bmp
加算しない理由:
24 ビットのビットマップ イメージ (*.BMP ファイル) を使用しています。ビットマップが BMPFILEHEADER と BMPINFOHEADER で構成されていることはわかっていますが、これらは合わせて 54 バイトを消費します。
現在、画像は幅 1350 ピクセル、高さ 740 ピクセルで、999000 ピクセルになります。
ファイルは 24 ビットなので、1 ピクセルあたり 3 バイトです。999000 * 3 = 2997000 バイトがイメージに必要です。しかし、BMPINFOHEADER の画像サイズ (biSizeImage) は、画像が 2998480 バイトであることを示しています。ファイル サイズは 2.998.534 バイト - 54 ヘッダー バイト = 2.998.480 です。したがって、ヘッダーはまだ 54 バイトです。余分なメタデータはありません。2.998.480 / ピクセルあたり 3 バイトを割ると、999493,33 ピクセルになります。ラウンド数でもありません!
それは私を狂気に駆り立てています。ウィンドウは、ピクセルや色などをシフトせずにこの画像を表示する方法をどのように知っていますか?
これらの余分なピクセル/バイトがどこから来たのか誰か説明できますか? そして、それらにどう対処するのですか?
前もって感謝します!