- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
面向对象程序及设计课程及设计报告
《面向对象程序设计》课程设计报告 学 号: 班级序号: 姓 名: 指导老师: 成 绩: 中国地质大学实习题目一【题目需求】 给定一幅单波段影像imgData.txt(ASCII格式),实现对图像的处理和显示。已知条件:(1)clrTbl.txt文件是一个颜色查找表,大小是256X3,即可表示256中RGB的颜色。(2)ImgData.txt文件中是图像的数据,每个值代表一个像素的颜色索引号,通过索引号到颜色查找表(clrTbl.txt文件)中找到相应的RGB颜色值。(3)中值滤波:一种非线性平滑技术,它将每一像素点的灰度值设置为该点某邻域窗口内(这里选择3X3)的所有像素点灰度值的中值。(4)屏幕上显示像素点的函数:SetPixel(HDC drawDevice, long X, long Y, COLORREF rgbVal);基本要求:(1)定义一个中值滤波器,并实现图像的中值滤波;(2)将中值滤波的结果输出到二进制文件resImg.rs中;拔高要求:(3)在屏幕上分别显示原始图像和中值滤波结果图像。【实现过程】思想: 首先构造结构体用来存储R/G/B,然后从文件中读取像素点的值利用颜色查找表打印出来,再利用中值滤波器对中间图像处理,边缘图像选用中值滤波器和靠内的像素覆盖来观察效果。最后输出将中值滤波结果输出到二进制文件。实现过程:从文件中读取各点的像素值从文件中读入颜色查找表将中值滤波后结果输入到二进制文件设置句柄利用颜色查找表打印图像制作中值滤波器使图像平滑,并在边缘进行处理【感想】 该程序的重点即在把制作中值滤波器用旁边点的中值代替中间点,思路较为明确,因而不是很难。【附录】源程序清单:// 中值滤波.cpp : 定义控制台应用程序的入口点。//#include stdafx.h#include DeviceContext.h#includeiostream#includefstream#include iomanip #include Windows.h#include math.husing namespace std; struct myRGB{short R;short G;short B;};int _tmain(int argc, _TCHAR* argv[]){ int a,b;myRGB rgb[256];int s[2];HWND mmm;//获得句柄HDC hdc;mmm=GetConsoleWindow();hdc=GetDC(mmm); ifstream myfile;ifstream myfileo;myfile.open(1-clrTbl.txt);myfile a b ;for(int j=0; ja; j++){myfilergb[j].Rrgb[j].Grgb[j].B;}myfileo.open(1-ImgData.txt);myfileos[0]s[1];//couts[0]s[1];该句用于先开始查看遥感图像像素点个数short **my=new short*[s[0]];for(int i=0;is[0];i++)my[i]=new short[s[1]];short **my1=new short*[s[0]];for(int i=0;is[0];i++)my1[i]=new short[s[1]];for(int i=0; is[0]; i++){for(int j=0; js[1]; j++){myfileomy[i][j];//从文件中读取}}for(int i=0;is[0];i++){for(int j=0;js[1];j++){my1[i][j]=my[i][j];}}for(int i=0;is[0];i++)//打印原始图像{for(int j=0;js[1];j++){int t=my[i][j];int r=rgb[t].R;int g=rgb[t].G;int b=rgb[t].B;SetPixel(hdc, j, i, RGB(r,g,b));}}for(int i=1;is[0]-1;i++)//用中值滤波器进行处理{for(int j=1;js[1]-1;j++){short a[9];int k=0;for(int ii=i-1;iii+2;++ii){for(int jj=j-1;jjj+2;++jj){a[k++]=my[ii][jj];for(int m=0;m5;++m){int min =m;for(int n=m+1;n9;++n)if(a[n]a[min])min=n;int temp=a[m];a[m]=a[min];a[min]=temp;}my1[i][j]=a[
文档评论(0)