- 15
- 0
- 约3.89千字
- 约 6页
- 2017-06-09 发布于北京
- 举报
图像显示与处理实验报告
班级: 信息123班
姓名: 杨阳
学号: 201227073
图像显示与处理
一、实验目的
1、掌握BMP文件格式,熟悉各参数和图像数据的存放方式;
2、通过编程实现对图像内容的读取(到内存中);
3、完成图像的显示,掌握设备环境上下文(DC)的使用方式。
4、对图像进行二值化、求边缘、增强等简单处理。
二、实验仪器设备、工具及材料
设备:多媒体计算机。
软件:Visual Studio 6.0及以上版本。
材料:灰度图像,24位真彩色图像(均为非压缩BMP格式)等。
三、实验内容及步骤
1、BMP文件格式
BMP是Bitmap(位图)的简写,是Windows操作系统中的标准图像文件格式。Windows 3.0以前的BMP图文件格式与显示设备有关,称为设备相关位图DDB文件格式。Windows 3.0以后的BMP图象文件与显示设备无关,因此称为设备无关位图DIB(device-independent bitmap)格式。
BMP文件由4部分组成:位图文件头(BITMAPFILEHEADER)、位图信息头(BITMAPINFOHEADER)、彩色表(RGBQUAD)和图像数据阵列。对应的数据结构定义如下(来自MSDN)。
typedef struct tagBITMAPFILEHEADER {
WORD bfType; // file type, must be BM
DWORD bfSize; // size (bytes) of the bitmap file
WORD bfReserved1;
WORD bfReserved2;
DWORD bfOffBits; // offset (bytes) from this structure to the bitmap bits
} BITMAPFILEHEADER;
typedef struct tagBITMAPINFO {
BITMAPINFOHEADER bmiHeader;
RGBQUAD bmiColors[1];
} BITMAPINFO, *PBITMAPINFO;
typedef struct tagRGBQUAD {
BYTE rgbBlue; BYTE rgbGreen;
BYTE rgbRed; BYTE rgbReserved;
} RGBQUAD;
typedef struct tagBITMAPINFOHEADER
{
DWORD biSize; // bytes required by the structure
LONG biWidth; LONG biHeight;
WORD biPlanes; // number of planes, must be 1
WORD biBitCount; // number of bits-per-pixel
DWORD biCompression; // BI_RGB: uncompressed
DWORD biSizeImage; // size(bytes) of image, set to 0 for BI_RGB bitmaps
LONG biXPelsPerMeter; // horizontal resolution
LONG biYPelsPerMeter; // vertical resolution
DWORD biClrUsed;
DWORD biClrImportant;
} BITMAPINFOHEADER;
自然界所有颜色都可由红、绿、蓝(R,G,B)组合而成。R/G/B各自分成256级,这种分级概念称为量化,这样就能表示256×256×256约1600万种颜色,这对于人眼来说已经足够丰富了。对于颜色数远远少于1600万种的彩色图,可以用一个表:表中的每一行记录一种颜色的R、G、B值。这样当我们表示一个象素的颜色时,只需要指出该颜色是在第几行,即该颜色在表中的索引值。这张R、G、B的表,就是我们常说的调色板(Palette),另一种叫法是颜色查找表LUT(Look Up Table)。
用R、G、B颜色表示所有的颜色叫做真彩色图(true color)。表示真彩色图时,每个象素直接用R、G、B三个分量字节表示,而不采用调色板技术。真彩色图又叫做24位色图。在Windows下,RGB颜色阵列存储的格式其实BGR。而32位的RGB位图像素数据格式是:蓝色B值、绿色G值、红色R值、透明通道A值。透明通道也称Al
原创力文档

文档评论(0)