C++课程设计报告(共27页).docx
《C++课程设计报告(共27页).docx》由会员分享,可在线阅读,更多相关《C++课程设计报告(共27页).docx(27页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上面向对象程序设计课程设计报告 学 号: 班级序号: 姓 名: 指导老师: 成 绩: 中国地质大学实习题目一【题目需求】 给定一幅单波段影像imgData.txt(ASCII格式),实现对图像的处理和显示。已知条件:(1)clrTbl.txt文件是一个颜色查找表,大小是256X3,即可表示256中RGB的颜色。(2)ImgData.txt文件中是图像的数据,每个值代表一个像素的颜色索引号,通过索引号到颜色查找表(clrTbl.txt文件)中找到相应的RGB颜色值。(3):一种非线性平滑技术,它将每一点的设置为该点某邻域窗口内(这里选择3X3)的所有像素点灰度值的。(4)
2、屏幕上显示像素点的函数:SetPixel(HDC drawDevice, long X, long Y, COLORREF rgbVal);基本要求:(1)定义一个中值滤波器,并实现图像的中值滤波;(2)将中值滤波的结果输出到二进制文件resImg.rs中;拔高要求:(3)在屏幕上分别显示原始图像和中值滤波结果图像。【实现过程】(1) 思想: 首先构造结构体用来存储R/G/B,然后从文件中读取像素点的值利用颜色查找表打印出来,再利用中值滤波器对中间图像处理,边缘图像选用中值滤波器和靠内的像素覆盖来观察效果。最后输出将中值滤波结果输出到二进制文件。(2) 实现过程:从文件中读取各点的像素值从文件
3、中读入颜色查找表将中值滤波后结果输入到二进制文件设置句柄利用颜色查找表打印图像制作中值滤波器使图像平滑,并在边缘进行处理【感想】 该程序的重点即在把制作中值滤波器用旁边点的中值代替中间点,思路较为明确,因而不是很难。【附录】源程序清单:/ 中值滤波.cpp : 定义控制台应用程序的入口点。/#include stdafx.h#include DeviceContext.h#include#include#include #include #include using namespace std; struct myRGBshort R;short G;short B;int _tmain(in
4、t argc, _TCHAR* argv) int a,b;myRGB rgb256;int s2;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; jrgbj.Rrgbj.Grgbj.B;myfileo.open(1-ImgData.txt);myfileos0s1;/couts0s1;该句用于先开始查看遥感图像像素点个数short *my=new sho
5、rt*s0;for(int i=0;is0;i+)myi=new shorts1;short *my1=new short*s0;for(int i=0;is0;i+)my1i=new shorts1;for(int i=0; is0; i+)for(int j=0; jmyij;/从文件中读取for(int i=0;is0;i+)for(int j=0;js1;j+)my1ij=myij;for(int i=0;is0;i+)/打印原始图像for(int j=0;js1;j+)int t=myij;int r=rgbt.R;int g=rgbt.G;int b=rgbt.B;SetPixel
6、(hdc, j, i, RGB(r,g,b); for(int i=1;is0-1;i+)/用中值滤波器进行处理for(int j=1;js1-1;j+)short a9;int k=0;for(int ii=i-1;iii+2;+ii)for(int jj=j-1;jjj+2;+jj)ak+=myiijj;for(int m=0;m5;+m)int min =m;for(int n=m+1;n9;+n)if(anamin)min=n;int temp=am;am=amin;amin=temp;my1ij=a4;for(int i=0;is0;i+)/打印图像for(int j=0;js1;j
7、+)int t=my1ij;int r=rgbt.R;int g=rgbt.G;int b=rgbt.B;SetPixel(hdc, j+330, i, RGB(r,g,b); for(int i=0;i1;i+)/用中值滤波器处理边缘for(int j=1;js1-1;j+)short a5;int k=0;for(int ii=i;iii+2;+ii)for(int jj=j-1;jjj+2;+jj)ak+=myiijj;for(int m=0;m3;+m)int min =m;for(int n=m+1;n5;+n)if(anamin)min=n;int temp=am;am=amin;
8、amin=temp;int r=a2;my1i0=r;for(int j=1;js1;j+)/用附近点进行边缘处理my10j=my11j;for(int j=1;js1;j+)my1s0-1j=my1s0-2j;for(int i=0;is0;i+)/打印图像for(int j=0;js1;j+)int t=my1ij;int r=rgbt.R;int g=rgbt.G;int b=rgbt.B;SetPixel(hdc,j, i+260, RGB(r,g,b); ofstream file (resImg.rs,ios_base:binary|ios_base:out);file.write
9、(reinterpret_cast(&my1),sizeof(my1);/写入文件ifstream file1;file1.open(resImg.rs,ios_base:binary|ios_base:in);file1.read(char*)&my1,sizeof(my1);/ for(int i=0;i20;i+)/仅用20*20样本对比监测数据/for(int j=0;j20;j+)/coutmyji ;for(int i=0;is0;i+)/释放内存delete myi;deletemy;for(int i=0;is0;i+)delete my1i;deletemy1;system(
10、pause);return 0;实现功能及效果 实习题目二【题目需求】 样本点的多项式曲线拟合:给定n个样本点(x,y),根据多项式曲线拟合公式,拟合出一条逼近的曲线函数。已知条件:(1)样本点的生成方法:(sin()是余弦函数,rand()是随机函数)y = sin(0.1*x)+ noise; 其中,x = 1100,noise = rand(1100)*0.3,noise是随机噪声。(2)多项式曲线拟合公式:y(x,w) = w0 + w1*x1 + w2*x2 + + wn*xn(3)在程序输出窗口里绘制图形的函数:DrawText(HDC drawDevice, long X, lo
11、ng Y, char* text); /在(x,y)处绘字符MoveTo(HDC drawDevice, long X, long Y); /移动到某个点处LineTo(HDC drawDevice, long X, long Y); /画线到某个点处基本要求:(1)根据给定的条件,计算出带噪声的样本点集合,并将其输出到文本文件samp.txt中;(2)通过线性方程组求解,计算出多项式曲线拟合的系数wi(1=i=n),并将其输出;拔高要求:(3)将原始的样本点和求解的拟合曲线用不同的颜色绘制在窗口,进行显示对比;并通过调整多项式的次数,观察何时会发生过度拟合现象。【实现过程】(1)思想:这个是
12、比较复杂的。首先得到噪声点,再用最小二乘法得到拟合曲线,用textout绘制噪声点,用冒泡排序法法找到x值最小的噪声点,以此找到对应y值,开始用求得的拟合系数来增加x值获得y值连线得到拟合曲线。再绘制一次不同系数观察对比。最小二乘法得到拟合w值(2) 实现过程:得到噪声点冒泡排序找到x最小值利用拟合系数算出x增加时y值并绘制曲线绘制多条进行对比(【感想】 可以看出来最后打出来的曲线相当漂亮,利用冒泡排序法找出最小值因而曲线最终这么漂亮,谢了五堂课程设计课,十分辛苦完成的,拟合感觉也非常好。恩,我很满意的作品。【附录】/ fw1.cpp : 定义控制台应用程序的入口点。/#include std
13、afx.h#include#include#include#include#include#include#includeusing namespace std;#include DeviceContext.hvoid solve(int m, int number,float *x,float*y,float *p1)int i, j, k;float *w;w=new floatm;if(w!=NULL)/利用最小二乘法求解double a5050 = 0;double t;for (i = 0; i = m; i+)for (j = 0; j = m; j+)for (k = 0; k
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 课程设计 报告 27
限制150内