【发布时间】:2011-09-08 14:19:10
【问题描述】:
我正在尝试使用 C++ 代码分析车牌。关键不是如何快速到达那里,因为我想自己创建这个 C++ 代码并学习如何去做。
问题:
位图文件中的字节不加起来!位图文件: http://ictmdeklerk.nl/cor.bmp
为什么他们不加起来:
我正在使用 24 位图图像(*.BMP 文件)。我知道位图是用 BMPFILEHEADER 和 BMPINFOHEADER 构建的,它们总共消耗 54 个字节。
现在,图像的宽度为 1350 像素,高度为 740 像素,即 999000 像素。
因为文件是 24 位的,所以每个像素有 3 个字节。 999000 * 3 = 图像所需的 2997000 字节。但是 BMPINFOHEADER 中的图像大小(biSizeImage)表示图像是 2998480 字节!文件大小为 2.998.534 字节 - 54 头字节 = 2.998.480 确实。所以头部仍然是 54 字节。那里没有额外的元数据。当我除以 2.998.480 / 3 字节每像素时,我得到 999493,33 像素!它甚至不是一个整数!
这让我发疯了。 windows 怎么知道如何在不改变像素或颜色或其他任何东西的情况下显示此图像?
谁能解释一下这些额外的像素/字节是从哪里来的?又该如何处理?
提前致谢!
【问题讨论】:
-
为什么不用十六进制编辑器查看文件 - 应该很容易看出 1000 左右的额外字节来自...
标签: bitmap filesize pixels image-size