摘 要 在实时图像采集系统中,经常需将图像切割后再输出。文中给出了对采集到的BMP图像进行自动切割存储的完整解决方案及代码。
关键词 图像;切割;BMP;Visual C++
1 引言
在实际应用中,经常需要将图像感兴趣的部分切割下来单独存储。画笔、PhotoShop等工具软件固然可以用来完成这项工作,但如果要求实时对采集的图像序列进行切割、存储,手工处理就不能胜任了。
针对BMP图像,给出了对图像进行切割、存储的方法。即:给定一张原始图像和图像上的一个矩形,将图像上矩形范围内的部分切割下来,并存储在指定的BMP图像文件中。由于BMP文件中有多种索引格式的存在,因此这项工作的难点是如何准确计算各种索引格式下切割后图像像素在新文件中的存储位置。文中将原始图像称为原图像,切割后保存的图像称为目标图像。
2 BMP图像的格式
DIB是Windows的标准位图格式,该格式是与硬件设备无关的存储格式。一个BMP文件中包含一个完整的DIB。BMP文件由3部分数据块组成如图1所示:位图文件头(BitmapFileHeader)、位图信息头(BitmapInfoHeader)、像素区(Dib Bit Image)。BitmapFileHeader保存文件的类型、大小信息,BitmapInfoHeader中保存图像的颜色、维数等信息;如果图像是索引图像,在BitmapInfoHeader的结尾还要存储调色板信息;Dib Bit image中存放图像的像素信息。
图1. BMP文件格式
|