- 37
- 0
- 约9.9千字
- 约 17页
- 2018-10-14 发布于重庆
- 举报
应用CC 语言编写灰度图像霍夫曼编码的程序
应用C/C++语言编写灰度图像霍夫曼编码的程序
PAGE
PAGE 1
华东交大理工学院
课程设计
课设名称应用C/C++语言编写灰度图像霍夫曼编码的程序
所属课程 数字图像处理课程设计
班级 05计算机2班
姓名 麻仕伟
学号 31号
指导教师 俞慧娟
2008
华东交大理工学院_2008-2009_学年第_一_学期
课程设计安排计划
班级: 05计算机2班 课程:_数字图像处理课程设计
课程设计题目:
应用C/C++语言编写灰度图像霍夫曼编码的程序
设计内容及要求:
用C/C++语言完成设计,在计算机上调试程序;
上机课时:8课时;
列出设计结果,并提交课程设计报告。
设计方法与步骤:
统计一幅BMP格式的灰度图像的概率,并显示相应的灰度值和概率;
对这幅图像做霍夫曼编码;并列出编码结果。
计算平均码长和熵值,算出编码效率。
所有的结果都要求显示出来。
设计时间安排:
2008年12月29日(星期一)3、
2008年12月30日(星期二)1、
2008年12
其他需说明的事项(课设如到本部做,请注明实验室名称;还有学校需提供的软件和硬件环境)
指导老师:余慧娟
时 间: 2008-12-2
联系电话目 录
一. 正文…………………………………4
1.1统计一幅BMP格式的灰度图像的概率,并显示相应的灰度值和概率………………………………….………4
1.2 霍夫曼编码方法的产生背景,具体方法………5
1.3计算平均码长和熵值,算出编码效率………………6
二. 小结…………………………………………………...7
三. 附录…………………………………8
3.1 源程序……………………………………………….8
3.2 程序运行结果……………………………………...15
3.3 参考文献…………………………………………...17
正文
统计一幅BMP格式的灰度图像的概率
在实现数字图象处理的过程中,主要是通过对图像中的每一个像素点运用各种图像处理算法来达到预期的效果,所以进行图像处理的第一步,也是我们最关心的问题,是如何得到图像中每一个像素点的亮度值;为了观察和验证处理的图像效果,另一个需要解决的问题是如何将处理前后的图像正确的显示出来。
BMP灰度图像作为Windows环境下主要的图像格式之一,以其格式简单,适应性强而倍受欢迎。正如我们在上一讲中介绍过的那样,这种文件格式就是每一个像素用8bit表示,显示出来的图像是黑白效果,最黑的像素的灰度(也叫作亮度)值为“0”,最白的像素的灰度值为“255”,整个图像各个像素的灰度值随机的分布在“0”到“255”的区间中,越黑的像素,其灰度值越接近于“0”,越白(既越亮)的像素,其灰度值越接近于“255”;与此对应的是在该文件类型中的颜色表项的各个RGB分量值是相等的,并且颜色表项的数目是256个。
在进行图像处理时,操作图像中的像素值就要得到图像阵列;经过处理后的图像的像素值需要存储起来;显示图像时要正确实现调色板、得到位图的尺寸信息等。,BMP位图包括位图文件头结构BITMAPFILEHEADER、位图信息头结构BITMAPINFOHEADER、位图颜色表RGBQUAD和位图像素数据四部分。处理位图时要根据文件的这些结构得到位图文件大小、位图的宽、高、实现调色板、得到位图像素值等等。这里要注意的一点是在BMP位图中,位图的每行像素值要填充到一个四字节边界,即位图每行所占的存储长度为四字节的倍数,不足时将多余位用0填充。为此,我们充分利用了程序的文档视图结构,在程序中直接使用了一些API函数来操作图像。在微软的MSDN中有一个名为Diblook的例子,该例子演示了如何操作Dib位图.
启动Visual C++,生成一个名为Dib的多文档程序,将CDibView类的基类设为CscrollView类,这样作的目的是为了在显示位图时支持滚动条,另外在处理图像应用程序的文档类(CDibDoc.h)中声明如下宏及公有变量:
#define WIDTHBYTES(bits) (((bits) + 31) / 32 * 4)//计算图像每行象素所占的字节数目;
HANDLE m_hDIB;//存放位图数据的句柄;
CPalette* m_palDIB;//指向调色板Cpalette类的指针;
CSize m_sizeDo
原创力文档

文档评论(0)