数字图像处理实习dys

上传人:第*** 文档编号:49341576 上传时间:2018-07-27 格式:PPT 页数:37 大小:337.50KB
返回 下载 相关 举报
数字图像处理实习dys_第1页
第1页 / 共37页
数字图像处理实习dys_第2页
第2页 / 共37页
数字图像处理实习dys_第3页
第3页 / 共37页
数字图像处理实习dys_第4页
第4页 / 共37页
数字图像处理实习dys_第5页
第5页 / 共37页
点击查看更多>>
资源描述

《数字图像处理实习dys》由会员分享,可在线阅读,更多相关《数字图像处理实习dys(37页珍藏版)》请在金锄头文库上搜索。

1、数字图像处理课程 综合实习2011年5月一、数字图像基本概念1、数字图像 连续物理图像采样和量化为离散数值矩阵,矩阵中 每个元素表示相应位置像素亮度,称之为数字图像。 描述数字图像,就要用到像素行数(Height)、像素 列数(Width),每行存储字节数(LineBytes),每个像素 (i,j)亮度值(pData(Height-i-1)*LineBYtes+j)。 数字图像处理,就是对Height行、 Width列像素亮 度进行运算,有空间域的点运算、邻域运算以及频率 域运算等。2、像素颜色自然界中所有颜色都可由红、绿、蓝(RGB) 三原色组合。在数字图像中,R、G、B量化为0 到255共

2、256级,像素取不同的RGB值,表示不 同的颜色。1)单色图像单色图像只有黑白两色,像素值1位,取0或1 。2)256色图像256色图像有256种颜色,像素值8位,取0-255 。一、数字图像基本概念2、像素颜色3)真彩色图像 真彩色图像有256 X 256 X256种颜色,像素 值24位,3个字节分别表示B、G、R分量值。4)灰度图像 灰度图像有256种灰度级,像素值8位,取 0-255,每一灰度级B、G、R分量相等。 8位位图是比较广泛的图像表示方法,当需 要实时快速处理图像时,利用8位位图近似处理 。一、数字图像基本概念3、图像格式 数字图像中,像素值矩阵用二维数组表示,像素 值按不同方

3、式存储,图像格式就不同。图像数据存成 文件就得到图像文件,图像格式不同,图像文件扩展 名就不同。 如:位图格式,文件扩展名为bmp; RAW格式,文件扩展名为raw。 3.1 RAW格式 像素值根据行、列号,按从上到下、从左到右顺 序,依次存储到.raw文件。.raw文件只含像素值,不 含图像信息,不能直接获得图像高度和宽度,需根据 .raw文件大小(Length)计算Height和Width或给定。一、数字图像基本概念3、图像格式3.1 RAW格式 从*.raw文件中,读取像素数据到hRaw CFile FileRaw; FileRaw.Open(“*.raw”,CFile:modeRead

4、); LONG Length=FileRaw.GetLength(); HLOCAL hRaw=LocalAlloc(LHND,Length); LPBYTE pRaw=(LPBYTE)LocalLock(hRaw); FileRaw.ReadHuge(pRaw,Length); 一、数字图像基本概念3、 图像格式3.2 位图格式3.2.1 DDB与设备相关位图 Windows.h中结构体BITMAP定义了DDB高度、宽 度、像素值,但没有颜色表,显示时以系统调色板 进行颜色映射,是一种内部位图格式,不存储成文 件。3.2.2 DIB与设备无关位图 DIB定义了颜色表,显示时以颜色表创建调色板

5、 进行颜色映射,是一种外部位图格式,存储成.bmp 文件,显示位图固有颜色。一、数字图像基本概念4、BMP文件BMP文件包含: 文件头BITMAPFILEHEADER 信息头BITMAPINFOHEADER 颜色表bmiColorsi 图像数据pData(Height-i-1)*LineBytes+j一、数字图像基本概念4.1 位图文件头typedef struct tagBITMAPFILEHEADERWORD bfType; /必须是0x424D,即字符串 “BM”DWORD bfSize; /文件大小WORD bfReserved1;WORD bfReserved2;DWORD bfOf

6、fBits; /数据区相对文件头偏移字节数BITMAPFILEHEADER, FAR *LPBITMAPFILEHEADER; 文件头共14字节一、数字图像基本概念4.2 位图信息头typedef struct tagBITMAPINFOHEADERDWORD bfSize; /本结构字节数,为40LONG biWidth; /图像宽度,以像素为单位LONG biHeight; /图像高度,以像素为单位WORD biPlanes; /必须是1WORD biBitCount; /像素值位数DWORD biCompression; /位图是否压缩,BI_RGB 、BI_RLE4、BI_RLE8DW

7、ORD biSizeImage; / 数据区字节数:LineBytes*HeightLONG biXPelsPerMeter;/目标设备水平分辨率LONG biYPersPerMeter;/目标设备垂直分辨率DWORD biClrUsed; /实际所用颜色数,若为0,颜色数为2biBitCount次DWORD biClrImportant; /重要颜色数BITMAPINFOHEADER, FAR *LPBITMAPINFOHEADER;一、数字图像基本概念4.3 颜色表 颜色表:含有biClrUsed个RGBQUAD结构体,定义 biClrUsed种颜色。 当biBitCount=8时, bi

8、ClrUsed=256; 当biBitCount=24时,没有颜色表RGBQUAD结构体定义颜色 typedef struct tagRGBQUAD BYTE rgbBlue; /蓝色亮度,取值0-255 BYTE rgbGreen; /绿色亮度,取值0-255 BYTE rgbRed; /红色亮度,取值0-255 BYTE rgbReserved;/必须为0 RGBQUAD;一、数字图像基本概念4.4 数据区 像素值按行、列号,从下到上,从左到右存储在数 据区,每行字节数是4字节的倍数,不足位补0。 LineBytes=(Width*biBitCount+31)/32*4 biBitCoun

9、t=1,1个像素1位,8个像素1字节,颜色 数为2,颜色表表项数为2,像素值为颜色表索引值。 biBitCount=4,1个像素4位,2个像素1字节,颜色 数为16,颜色表表项数为16,像素值为颜色表索引值 。 biBitCount=8,1个像素8位,1个像素1字节,颜色数为 256,颜色表表项数为256,像素值为颜色表索引值。 biBitCount=24,1个像素3字节,存储蓝、绿、红颜 色值,无颜色表,像素值为真实颜色值。一、数字图像基本概念5、调色板 显示硬件根据系统调色板,进行颜色映射,显示像 素颜色。系统调色板只前20种颜色固定不变,不能正确 显示位图所有颜色。 1)根据位图颜色表,

10、创建位图逻辑调色板结构LPLOGPALETTE pLogPal;pLogPal=(LPLOGPALETTE)GlobalAlloc(GHND,2*sizeof(WORD)+m_numberOfColors*sizeof(PALETTEENTRY); pLogPal-palVersion=0x300; pLogPal-palNumEntries=m_numberOfColors; BITMAPINFO * PBitmapInfo=(BITMAPINFO *)m_pBitmapInfoHeader; for(int i=0;ipalPalEntryi.peRed=PBitmapInfo-bmiCo

11、lorsi.rgbRed; pLogPal-palPalEntryi.peGreen=PBitmapInfo- bmiColorsi.rgbGreen; pLogPal-palPalEntryi.peBlue=PBitmapInfo-bmiColorsi.rgbBlue; pLogPal-palPalEntryi.peFlags=0; 一、数字图像基本概念5、调色板2)创建逻辑调色板,返回逻辑调色板句柄HPALETTE hPalette=:CreatePalette(pLogPal);3)选择逻辑调色板到设备上下文 CDC *pDC=GetDC(); HDC hDC=pDC-GetSafeHd

12、c(); :SelectPalette(hDC,hPalette,true);4)设备上下文的逻辑调色板实现为系统调色板 :RealizePalette(hDC);一、数字图像基本概念6、显示函数1)int WINAPI StretchDIBits(HDC hdc,int XDest,int YDest,int nDestWidth,int nDestHeight,int XSrc,int YSrc,int nSrcWidth,int nSrcHeight, CONST VOID *lpvBits,CONST BITMAPINFO *lpbmi,UINT iUsage,DWORD dwRop)

13、HDC hdc:设备上下文句柄int Xdest:指定绘图区域的左上角x坐标(逻辑单位)int Ydest:指定绘图区域的左上角y坐标(逻辑单位)int nDestWidth:指定DIB的宽度(逻辑单位)int nDestHeight:指定DIB的高度(逻辑单位)int XSrc:指定原位图要绘制区域的左上角x坐标(逻辑单位)int Ysrc:指定原位图要绘制区域的左上角y坐标(逻辑单位)一、数字图像基本概念 6、显示函数 int nSrcWidth:指定要复制原图像矩形区域的宽度(逻辑单位)int nSrcHeight:指定要复制原图像矩形区域的高度(逻辑单位)lpBits:指向DIB图像数

14、据区的指针lpBitsInfo:指向BITMAPINFO结构的指针iUsage:指定BITMAPINFO结构中的bmiColors参数代表真实的RGB值还是调色板中的索引值,它有两种可能的取值:DIB_PAL_COLORS:代表索引值DIB_RGB_COLORS:代表真实的RGB值dwRo:指定绘制方式;常用的值为SRCCOPY,表示将原位图复制到目标位图该函数如果调用成功,返回绘制的行数;如果调用失败,则返回GDI_ERROR。一、数字图像基本概念6、显示函数1)int SetDIBitsToDevice(HDC hdc,int XDest,int YDest,DWORDdwWidth,DWORD dwHeight,int XSrc,int YSrc,UINT uStartScanUINT cScanLines,CONST VOID *lpBits,CONST BITMAPINFO*lpbmi,UINT fuColorUse)该函数可以直接在显示器或打印机上显示DIB:HDC hdc:设备上下文句柄。它可以是CDC对象的公共成员变量m_hDC。int Xdest:指定绘图区域的左上角x坐标(逻辑单位)int Ydest:指定绘图区

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 工程造价

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号