基于VC数字图像处理的研究与实现
- 格式:pdf
- 大小:420.04 KB
- 文档页数:2
・实验研究 移植。在这里我们命名这个基类为ImgCenterDib,各种算法的 实现都是以ImgCenterDib类为基类派生出来。同时将各个模块 函数封装起来成为~个类,这些类都以ImgCenterDib类共有继 承,在主程序中调用,减少代码的重复性,提高利用率。派生关系 如图4.1: 4.2函数的功能 4.2.1 tretchDIBits: 该函数将DIB中矩形区域内像素使用的颜色数据拷贝到指 定的目标矩形中。如果目标矩形比源矩形大小要大,那么函数对 颜色数据的行和列进行拉伸,以与目标矩形匹配。如果目标矩 形大小要比源矩形小,那么该函数通过使用指定的光栅操作对 行列进行压缩。 4.2.2:int StretchDIBits(HDC hdc,int XDest,int YDest, int nDestWidth,int nDestHeight,int XSrc,int Ysrc,int nSrcWidth,int nSrcHeight,CONST VOID*lpBits,CONST BITMAPINFO lpBitslnfo,UINT iUsage,DWORD dwRop); hdc:指向目标设备环境的句柄。 XDest:指定目标矩形左上角位置的x轴坐标,按逻辑单位 来表示坐标。 YDest:指定目标矩形左上角的Y轴坐标,按逻辑单位表示 坐标。 nDestWidth:指定目标矩形的宽度。 nDestHeight:指定目标矩形的高度。 XSrc:指定DIB中源矩形(左上角)的X轴坐标,坐标以像素 点表示。 YSrc:指定DIB中源矩形(左上角)的Y轴坐标,坐标以像素 点表示。 nSrcWidth:按像素点指定DIB中源矩形的宽度。 nSrcHeight:按像素点指定DIB中源矩形的高度。 lpBits:指向DIB位的指针,这些位的值按字节类型数组存 储。 lpBitslnfo:指向BITMAPINFO结构的指针,该结构包含有 关DIB方面的信息。 iUSage:表示是否提供了BITMAPINFO结构中的成员 bmiColors,如果提供了,那么该bmiColors是否包含了明确的 RGB值或索引。参数iUsage必须取下列值,这些值的含义如下: DIB PAL COLOR:表示该数组包含对源设备环境的逻辑 调色板进行索引的16位索引值。 DIB—RGBCOLORS:表示该颜色表包含原义的KGB值。 dwRop:指定源像素点、目标设备环境的当前刷子和目标像 素点是如何组合形成新的图像。 如果NsrcWidth和NdestWidth符号不同,那么函数将沿着x 轴创建位图镜像。如果NsrcHeight和NdestHeight符号不同,那 么函数将沿着Y轴创建位图镜像。 4.3模块设计 具体的模块设计如下: 4.3.1欢迎界面 将欢迎图像作为对话框,在运行主界面程序前,先显示该对 话框。 4.3.2主界面设计 (1)文件操作模块。文件操作模块是整个系统中最基本的组 成成分'该模块主要实现图像的文件操作,包括新建操作,打开 操作.保存操作,另存为操作,关闭操作,打印操作。 功能截图如下
4.3.2菜单栏 (2)特效显示模块。渐进显示:先将画刷设计成白色,然后 将已经显示出来的原图象重新设置成白色,达到刷新屏幕的效 果。每隔3秒,调用一次StretehDIBits,来达到渐进显示效果; 滑动显示:每隔3秒,调用一次StretchDIBits,将图片一点 点向左显示,改变第3和7参数,并慢慢增JJl4和8的参数,使显示 的矩阵的宽度变大,达到滑动的效果; 扫描显示:其原理和滑动显示相同,只是改变的参数改 变。 (3)图像灰度变换模块。1)二值化:图像的二值化,就是将图 像上的像素点的灰度值设置为0或255,也就是将整个图像呈现 出明显的只有黑和白的视觉效果。2)彩色变灰色格式:当RGB中 3种颜色的含量相等时即为灰色。因此只要将RGN3色设置成一 样就可以了。3)灰度变彩色格式:只要把3基色的含量变的不一 样即可。 (4)图像镜像与旋转模块。图像镜像与旋转模块实现了图像 的镜像变换和图像旋转显示,包括水平镜像,垂直镜像,顺时针旋 转90度,逆时针旋转90度,图像旋转180度。 (5)图像增强处理模块。图像增强处理模块主要实现了图像 锐化效果,是模糊的图像变得更加清晰,颜色变得鲜明突出,更 适合人眼观察和识别。 (6)图像边缘检测模块。1)罗伯茨算子边缘检测。2)图像轮 廓提取:该功能只能处理二值化后的图,找到一个黑点后扫描 周围的8个点是否全为黑色,如果是则将该点致白色。