多媒体信息处理课程设计

上传人:bin****86 文档编号:43968244 上传时间:2018-06-07 格式:DOC 页数:20 大小:2.69MB
返回 下载 相关 举报
多媒体信息处理课程设计_第1页
第1页 / 共20页
多媒体信息处理课程设计_第2页
第2页 / 共20页
多媒体信息处理课程设计_第3页
第3页 / 共20页
多媒体信息处理课程设计_第4页
第4页 / 共20页
多媒体信息处理课程设计_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《多媒体信息处理课程设计》由会员分享,可在线阅读,更多相关《多媒体信息处理课程设计(20页珍藏版)》请在金锄头文库上搜索。

1、多媒体信息处理多媒体信息处理 课课 程程 设设 计计 报报 告告班级:班级:学号:学号:姓名:姓名: 1报告完成基本情况报告完成基本情况本次课程设计完成了必做课题 1 到 7,课题 8 也完成但是从网上所得未完全明白原理,课题 9 未完成,课题 10 完成。二主要源程序清单与注释二主要源程序清单与注释1.1.在程序中建立菜单,点击出现自己的个人信息(姓名学号等)在程序中建立菜单,点击出现自己的个人信息(姓名学号等) 。void CPicture228View:OnAfxMessageBox() / TODO: Add your command handler code here AfxMess

2、ageBox(“学号:n 姓名:朱进“); /使用 AfxMessageBox()函数显示个人信息 return; 2.2.反色变换反色变换BOOL DIB:fanse() int i,j;/定义的变量 if(bih.biBitCount=24)/判断是不是 24 位彩色图 for(i=0;im)/亮度大于阀值for(k=0;k!=3;k+)temp=1.1*Cnumber(i,j,k);/颜色分量提高 10%if(temp255)Cnumber(i,j,k)=255;/若提高后大于 255,则全赋为 255elseCnumber(i,j,k)=(unsigned char)temp; /若小

3、于 255,则将提高后的值赋回 该点else/亮度小于阀值for(k=0;k!=3;k+)temp=0.9*Cnumber(i,j,k);/颜色分量减小 10%Cnumber(i,j,k)=(unsigned char)temp; /将减小后的分量赋回该点else/灰度图 原理同彩色图相同for(i=0;im)temp=1.1*Hdu(i,j);if(tempm)/亮度大于阀值for(k=0;k!=3;k+)temp=0.9*Cnumber(i,j,k);/颜色分量减小 10%Cnumber(i,j,k)=(unsigned char)temp; /将减小后的值赋回该点else/亮度小于阀值f

4、or(k=0;k!=3;k+)temp=1.1*Cnumber(i,j,k);/颜色分量增加 10%if(tempm)temp=0.9*Hdu(i,j);Hdu(i,j)=(unsigned char)temp;elsetemp=1.1*Hdu(i,j); if(temp=Height) for(j=Height*3;jbmiHeader.biWidth=Height; m_pBMI-bmiHeader.biHeight=Width;bih.biWidth=Height;bih.biHeight=Width; bfh.bfSize=sizeof(BITMAPFILEHEADER)+sizeof

5、(BITMAPINFOHEADER)+realHeight*Width;bih.biSizeImage=realHeight*Width; else if(bih.biBitCount =8)/8 位灰度图 r=new double *Height; for(i=0;ibmiColorsi.rgbRed = (unsigned char)i; m_pBMI-bmiColorsi.rgbGreen = (unsigned char)i; m_pBMI-bmiColorsi.rgbBlue = (unsigned char)i; m_pBMI-bmiColorsi.rgbReserved = 0;

6、 for(i=0;i=Height) for(j=Height;jbmiHeader.biWidth=Height; m_pBMI-bmiHeader.biHeight=Width;/bih.biWidth=Height;/ bih.biHeight=Width; bfh.bfSize=sizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER)+sizeof(RGBQUA D)*256+realHeight*Width;bih.biSizeImage=realHeight*Width; else AfxMessageBox(“原图不是 8 位灰度图或 2

7、4 位真彩色图“);/两者都不是弹出该窗return false; return true; 9.24 位真彩色图转位真彩色图转 8 位灰度图位灰度图未完成10.设置还原功能设置还原功能首先在LoadFromFile 函数中添加以下程序用来保存该图的数据,以备在还原函数中进行调用。 LoadFromFile 中添加代码:int i,j;if(bih.biBitCount=24) for(i=0;iGetDIBHeight();i+) for(j=0;jGetDIBWidth();j+) int k=0; for(k;k!=3;k+) Aijk=int(Cnumber(i,j,k);/彩色图:定

8、义数组 A,在打开图的时 候对颜色分量进行保存,由还原功能调用 if(bih.biBitCount=8) for(i=0;iGetDIBHeight();i+) for(j=0;jGetDIBWidth();j+) Aij0=int(Hdu(i,j);/灰度图:定义数组 A,在打开图的时候对颜色分 量进行保存,由还原功能调用 还原源程序: BOOL DIB:huanyuan()/还原 int i,j; if(bih.biBitCount=8)/灰度图 for(i=0;iGetDIBHeight();i+) for(j=0;jGetDIBWidth();j+) Hdu(i,j)=(BYTE)Ai

9、j0;/将在刚打开该图时保存的数据重新赋回 else if(bih.biBitCount=24)/24 位彩色图 for(i=0;iGetDIBHeight();i+) for(j=0;jGetDIBWidth();j+) int k;for(k=0;k!=3;k+)Cnumber(i,j,k)=(BYTE)Aijk;/将刚打开始时保存的数据重新存回 位图数据中 else AfxMessageBox(“原图既不是 24 位真彩图也不是 8 位灰度图“);/两者都不是弹出该 窗return false; return true; 三程序运行结果截图三程序运行结果截图课题 1:课题 2:彩色图:灰

10、度图:课题 3:亮度变换打印截图无法看出效果,此处省略截图。 课题 4: 彩色图:灰度图:课题 5:由于不是彩打无法看出效果,则此处截图省略。 课题 6:彩色图:灰度图:课题 7:由于不是彩打无法看出效果,则此处截图省略。 课题 8:彩色图:灰度图:课题 10: 该功能无需截图4在编写程序中遇到的问题和解决方法在编写程序中遇到的问题和解决方法在编写课题 1 和 2 时没有问题,在做课题 3 时,程序编译通过了,但在运行时有问题了,就是在关图时会提示内存出错,其实编译通过了不一定代表程序对,它只是说明语法对,所以经过检查修改错误完成。课题 4 我也编译通过了就是功能实现不了,算法完全正确,最终发

11、现就是因为我定义的平均亮度变量没有赋初值。课题 6 一开始会出现左右或者上下镜像后中间有一条线,经检查试验只需将变换方向的位宽多减一位即可。做 矫正时最主要的是记得添加头文件,因为要用到指数函数。课题 8 自己只能实现正方形的旋转,从网上下载了一个进行了修改从而能实现矩形的旋转。课题 10 就是在刚打开始时对数据进行保存,但在进行灰度图的反色变换后无法还原,询问同学也没发现问题,最终用别人的程序可以,在修改为和我之前的一样也可以,没明白为什么。5小结小结通过本次课程设计,我收获颇多。一开始在看课题时,感觉应该不是很难,但当自己真正开始做时,就发现困难越来越多,我眼高手低了。本次课程设计进一步加强了我对书本知识的理解,它是理论与实践的紧密结合。同时通过本次设计,也锻炼了自己独立思考,独立编程的能力,而且也加强了自己解决困难的能力,现在,我们可以利用网络或者询问同学来解决自己不懂得问题,而不是遇到困难就退缩。还有就是让自己进一步熟练的使用 VC+软件,大一时曾学过,但是实践的机会少,因此很多功能不会用,现在能熟练使用常用功能了。总之,本次课程设计受益匪浅,我们应该把握每次课程设计机会,使自己得到提高。

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

当前位置:首页 > 大杂烩/其它

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