序号:学号:********CHANGZHOUUNIVERSITY课程设计设计课程名称:C语言课程设计题目:数字图像处理—几何变换1学生姓名:***学院(系):*******专业班级:*****指导教师:***专业技术职务:*****设计时间:****年*月**日****年*月**目录1、系统的意义以及主要功能................................................................................................................21.1系统的意义......................................................................................................................................21.2图像的功能......................................................................................................................................22、整个系统的功能结构图以及调用关系.........................................................................................23、各个功能实现流程图.........................................................................................................................23.1彩色图像变成灰度图像..................................................................................................................23.2几何变换之--旋转..........................................................................................................................33.3几何变换之--镜像..........................................................................................................................34、调试运行,程序的界面以及输入数据,以及输出结果.........................................................44.1原图..................................................................................................................................................44.2彩色图像变为灰度图像..................................................................................................................44.3灰度图像水平镜像..........................................................................................................................44.4灰度图像垂直镜像..........................................................................................................................54.5彩色图像水平镜像..........................................................................................................................54.6彩色图像垂直镜像..........................................................................................................................54.7灰度图像旋转(48)..........................................................................................................................64.8彩色图像旋转(90)..........................................................................................................................65、使用说明................................................................................................................................................66、C语言源程序代码..............................................................................................................................77、心得体会..............................................................................................................................................128、实习日志..............................................................................................................................................139、参考文献..............................................................................................................................................13~1~1、系统的意义以及主要功能1.1系统的意义目前图像处理的应用越来越广泛,已经渗透到工业、航空航天、军事等各领域,在国民经济中发挥越来越大的作用1.2图像的功能读入一幅彩色的数字图像,完成一系列的几何运算,并输出每个运算的效果图1.将彩色图像变为灰度图像2.将灰度图像旋转任意角度;并对彩色图像进行相应旋转3.将灰度图像和彩色图像进行水平镜像和垂直镜像2、整个系统的功能结构图以及调用关系3、各个功能实现流程图3.1彩色图像变成灰度图像主函数彩色图像变灰度图像几何变换之镜像几何变换之旋转开始读入一张彩色图像赋予变量图像性息指针开辟新空间图像遍历是否结束均值法求灰度输出图像指向下一像素点是否灰度图像彩色图像灰度图像彩色图像对灰度图像进行旋转对彩色图像进行旋转垂直镜像水平镜像3.2几何变换之--旋转3.3几何变换之--镜像~2~~3~是是是否否否输入彩色图像彩色还是灰度图赋予变量图像性息开辟新空间图像元素遍历是否结束输入灰度图旋转对应代码结束开始输入彩色图像彩色还是灰度图赋予变量图像性息开辟新空间图像元素遍历是否结输入灰度图镜像对应代码结束开始否是4、调试运行,程序的界面以及输入数据,以及输出结果4.1原图4.2彩色图像变为灰度图像4.3灰度图像水平镜像~4~4.4灰度图像垂直镜像4.5彩色图像水平镜像4.6彩色图像垂直镜像~5~4.7灰度图像旋转(48)4.8彩色图像旋转(90)5、使用说明编译链接后出现对话框和原始图片,按任意键即可在对话框中输入,根据对话框提示输入数字完成对应功能,出现功能图像按任意键摧毁窗口,即可继续输入完成对应功能。输入0结束变换,按任意键退出对话框。~6~6、C语言源程序代码#includemydll.h#includestdio.h#includestdlib.h#includestring.h#includemath.h#definePI3.14159265voidmain(){doublemaxa(doublea,doubleb);//最大值voidhd(intwide,intheight,unsignedchar*pdata,unsignedchar*gray);//灰度voidspjx(intwide,intheight,unsignedchar*pdata,intnumcolors);//水平镜像voidczjx(intwide,intheight,unsignedchar*pdata,intnumcolors);//垂直镜像voidhdxz(intwide,intheight,structimage*p1,structimage*p2,intk);//旋转structimageimg1,img2,*p2=&img2,*p1=&img1;unsignedchar*pdata,*gray;inti,k,n=3,m;intwide,height;imgfiletomat(G:\\1.jpg,&img1);//显示原始图像createwindow(原图);imgshow(原图,&img1);wait(0);//等待按键destroywindow(原图);height=img1.height;//像素高度wide=img1.width;//像素宽度for(i=0;(n!=0);i++){printf(\n\n\n);printf(\t\t----------------------------------------------------------------------\n);printf(\t\t|图像几何变换|\n);printf(\t\t----------------------------------------------------------------------\n);printf(\t\t|[1]----灰度|\n);printf(\t\t|[2]----水平镜像|\n);printf(\t\t|[3]----垂直镜像|\n);printf(\t\t|[4]----旋转|\n);printf(\t\t|[0]----退出系统|\n);printf(\t\t+*·*·*·*·*·*·*·*·*·*·*·*·*·*·*·*·*·*·*·*·*·*·**·*·*·*·*|\n);printf(\t\t----------------------------------------------------------------------\n);printf