数字图象处理技术报告.doc

PAGE 1 PAGE 8 数字图象处理技术报告 小组成员:陈龙斌(组长),王颖波,王育峰,吴震,洪泉 二. 小组完成的工作: 每人各自完成FFT. 陈龙斌: Hough变换(直线检测),伪彩色增强,二值化,微分运算,Huffman编码;提供读写文件和各成员的位图读写接口,完成原型系统的建立。 王颖波: DCT变换压缩、复原;图象平滑、图象锐化、中值滤波、直方图均衡、灰度级变换;边缘检测(Kirsch,Sobel);任意模板的输入、应用。 王育峰 几何变换(放大、缩小、倾斜、鼓形变换) 吴震 Walsh正反变换,DCT正反变换 洪泉 粗化、细化、膨胀、收缩。 三.实现环境:Pentium II, WindowsNT 4.0, Visual C++ 5.0, 24bit真彩 四.小组成员的技术报告: 陈龙斌: ■为小组成员提供的图象处理通用类CGraph. 构造:可以根据磁盘上的文件构造类对象,也可以根据给定的大小创建类对象。 操作:支持对位图的直接读取、显示。 要求:调色板的缺省设置为灰度图,即所有的图必须是灰度图。 class CGraph { public: CGraph(LPCTSTR lpszPathName);//根据文件名创建类对象 CGraph(int,int,BYTE*);//根据给定的大小和数据创建类对象 CGraph(int,int,double*);//根据给定的大小创建类对象 CGraph(int,int);// 根据给定的大小创建类对象 Void ColorInhence()//;伪彩色增强 Void Show(int px,int py,CDC* pDC);//在(x,y)位置显示位图 BYTE Getxy(int,int);//读取位图(I,j)处的灰度值 BOOL Setxy(int,int,double);// 设置位图(I,j)处的灰度值 BYTE* GetByteData();//取得位图数据 int GetHeight(){return bm.bmHeight;}//返回位图的高 int GetWidth(){return bm.bmWidth;}//返回位图的宽 }; ■Hough变换 原理:原空间的一点(x,y)对应于变换空间中的一条曲线     xicosθ+yisinθ=r 对原图象的所有点进行变换,得到变换空间一组曲线。这组曲线的交点处(或曲线经过密集处),不妨设为(r, θ). (r, θ)对应于原空间的一条直线。可认为此直线即检测出的直线。为了判定曲线的交点或密集处,设置了门限T.T的大小可以根据实际的图象进行变化。 实现:使用一个类,读入原图,输出变换空间的描述图。 class CHough {public: CGraph* inputgraph;;//输入图象 CGraph* outputgraph;//输出图象 void hough();//霍夫变换 CHough(CGraph* inputgraph, CGraph* outputgraph, intthr=10);  //thr为门限值,缺省为10。 ~CHough(); privated: 。。。。。。 }; ■伪彩色增强 分别对RGB三色进行如下的变换,输出到真彩色显示器即可。 绿色值(G)红色值(R) 绿色值(G) 红色值(R) 灰度值x灰度值x 灰度值x 灰度值x 兰色值(B) 兰色值(B) 灰度值x 灰度值x ■Huffman编码: 运用了两个类:Cbits和ChuffTree 类Cbits是用来完成位的操作。提供读写文件的接口,使程序能够以位为单位对文件进行存储、读取。 class CBits { public: CBits();//构造函数 DWORD GetCount();//返回位的数目 void Initial();//初始化 int GetABit();//返回当前位 DWORD GetSize();//返回最大位数 BOOL SetABit(DWORD,int);//存入一个位 void SaveFile(LPCTSTR );//存盘 void ReadFile(LPCTSTR );//读盘 DWORD AddBit(int );//添加一个位 virtual ~CBits(); protected: 。。。。。。 } 类CHuffTree用于将给定的数组进行编码,并存入位类中。它的成员函数CreateTree用于根据输入的各灰度的统计数目构造Huffman树。成员函数Translate用于将参数中的灰度值转换成二进制码。 class CHuffTree { public

文档评论(0)

1亿VIP精品文档

相关文档