您好,欢迎访问三七文档
当前位置:首页 > 高等教育 > 实验设计 > 数字图像处理课程设计报告(冈萨雷斯版)
《数字图像处理》课程设计报告第1页共7页1.课程设计目的1、提高分析问题、解决问题的能力,进一步巩固数字图像处理系统中的基本原理与方法。2、熟悉掌握一门计算机语言,可以进行数字图像的应用处理的开发设计。2.课程设计内容及实现2.1、网页安全色(Web-SafeColors)为了完成这项工作,必须找到一个合适的程序,这个程序可以把指定的JPG图像生成RGB元素的图像。例如,MATLAB的图像处理工具箱可以实现这一点,但你也可以使用图像编辑程序像Adobe的Photo-Shop或Corel的Photo-Paint。为了实现把图像转换为RGB这一目标,也可以手动修改。(a)编写计算机程序,把任意的RGB彩色图像转换到Web安全的RGB图像(Web安全颜色定义见图6.10)。(b)下载图像图6.8,转换为网络安全色的RGB彩色图像。图6.8是JPG格式,所以结果返回也为JPG(请看本项目的开始注释)。解释你的结果和图6.8之间的差异。2.1.1程序清单:I=imread('Fig6.08.jpg');subplot(121);imshow(I);title('原图');I1=fix((I/51)*51);subplot(122);imshow(I1);title('web-safecolors');2.1.2运行结果如图1图1网页安全色班级:10通信工程(2)班学号:Xb10680218姓名:张泽星第2页共7页结果分析:结果图出现明显的方格,每个方格就是一个网页安全色,方格内的颜色一致。原图则是普通的RGB,假使在原图的相同区域划分出和结果图相对应的方格,则此方格里的颜色是一个渐变的颜色,并非同一种颜色。2.2、伪彩色图像处理(Pseudo-ColorImageProcessing)(a)实现图6.23的特性,你可以为输入图像指定两个范围的灰度值,然后你的程序将输出的RGB图像,它的像素有一个指定的颜色,对应于输入图像的一个范围的灰度级,RGB图像中剩余的像素具有和输入图像相同的灰度。您可以从图6.4中所有的色彩中选定输入色彩(a)。(b)下载图像图1.10(4),用你的程序处理它使河流出现黄色,然后图像剩余部分的灰度和原始图像相同。图像中无关的地方允许出现少量黄色,但是这些地方应该尽可能的少,因此你的程序需要选择合适的两个灰度带。2.2.1程序清单clear;I=imread('Fig1.10(4).jpg');subplot(121);imshow(I);title('原图');[mn]=size(I);I1=cat(3,I,I,I);%生成RGB图像L=255%灰度级fori=1:mforj=1:n%对原图I进行灰度判断,黑色河流部分标记为黄色ifI(i,j)=0&I(i,j)=40I1(i,j,1)=L;%黄色的RGB为(255,255,0)I1(i,j,2)=L;I1(i,j,3)=0;endendendsubplot(122);imshow(I1);title('伪彩色图');2.2.2运行结果《数字图像处理》课程设计报告第3页共7页如图2图2伪彩色处理2.3通过直方图处理彩色图像增强(ColorImageEnhancementbyHistogramProcessing)(a)下载dark-stream彩色图片图6.35(这个图像标记图6.35(05)在6章的图像)。把图像转成RGB图像(见项目06-01开始评论)。直方图均衡化的R、G、B各分量将图像转换,最后保存为JPG格式。(b)从(a)中的三个直方图中构成一个均匀的直方图,并把这个作为基础去获得一个单一的直方图均衡化强度的变换函数。把这个函数应用到R,G和B单独分量上,把结果转成JPG。比较和解释(a)和(b)。在JPG图像上的差异2.3.1程序清单clearall;RGB=imread('Fig6.35(5).jpg');subplot(131);imshow(RGB);title('原图');R=RGB(:,:,1);%分别取出RGB各分量G=RGB(:,:,2);B=RGB(:,:,3);r=histeq(R);%通过函数histeq将RGB各分量均衡化g=histeq(G);b=histeq(B);rgb=cat(3,r,g,b);%将RGB三个分量合成subplot(132);imshow(rgb);title('RGB各分量均衡化');rgb1=rgb2gray(rgb);%RGB转换为灰度班级:10通信工程(2)班学号:Xb10680218姓名:张泽星第4页共7页[count,x]=imhist(rgb1);%返回直方图图像向量countr1=histeq(R,count);%将原始图像的R分量直方图变成指定向量countg1=histeq(G,count);b1=histeq(B,count);newrgb=cat(3,r1,g1,b1);subplot(133);imshow(newrgb);title('RGB各分量规定化');2.3.2运行结果如图3图3RGB各分量均衡化、规定化结果分析:均衡化和规定化输出的结果没有差别,因为给定向量count已经是均衡化了,把原图的R、G、B三个分量直方图纵坐标向量用规定的count向量替代,这样就对各分量进行了均衡化(也就是规定化),最后合成图像和直接均衡化结果一致。假如给定的count向量不是均衡化向量,只是分布较均匀的向量,那么结果就有差异了。2.4彩色图像分割(ColorImageSegmentation)下载图6.28(b),编程实现例子6.15的效果,用褐色替代图像的最黑暗区域,其余部分为白色。2.4.1程序清单clearall;RGB=imread('Fig6.28(b).jpg');I=RGB;R=double(I(:,:,1));%转换为双精度G=double(I(:,:,2));B=double(I(:,:,3));subplot(121);imshow(RGB);title('原始图像');rect=fix(getrect(1));%通过鼠标在图像上取出矩形区域%rect%中存的就是左上角的坐标,宽度,高度,要用时直接调用rect即可《数字图像处理》课程设计报告第5页共7页y=rect(1);%matlab横坐标为Y轴,纵坐标为X轴x=rect(2);w=rect(3);%矩形宽度h=rect(4);%矩形长度Cr=0;Cg=0;Cb=0;fornx=x:x+h%求矩形框中各分量的累加和forny=y:y+wCr=Cr+R(nx,ny);Cg=Cg+G(nx,ny);Cb=Cb+B(nx,ny);endendValue_R=Cr/(h*w);%求各分量平均值Value_G=Cg/(h*w);Value_B=Cb/(h*w);Var_R=0;Var_G=0;Var_B=0;%定义方差参数fori=x:x+hforj=y:y+wVar_R=(Value_R-R(i,j))^2+Var_R;%累加方差Var_G=(Value_G-G(i,j))^2+Var_G;Var_B=(Value_B-B(i,j))^2+Var_B;endend%计算各分量的标准差SVar_R=sqrt(Var_R/(h*w));SVar_G=sqrt(Var_G/(h*w));SVar_B=sqrt(Var_B/(h*w));%各个分量进行扩展(平均值-方差*1.25,平均值+方差*1.25)Rmin=Value_R-1.25*SVar_R;Gmin=Value_G-1.25*SVar_G;Bmin=Value_B-1.25*SVar_B;Rmax=Value_R+1.25*SVar_R;Gmax=Value_G+1.25*SVar_G;Bmax=Value_B+1.25*SVar_B;[m,n]=size(R);%求图片的尺寸班级:10通信工程(2)班学号:Xb10680218姓名:张泽星第6页共7页fora=1:mforb=1:n%对原图像上个各分量与扩展后的范围分量进行判断,符合则标记为黑色ifRGB(a,b,1)=Rmin&RGB(a,b,1)=Rmax&RGB(a,b,2)=Gmin...&RGB(a,b,2)=Gmax&RGB(a,b,3)=Bmin&RGB(a,b,3)=BmaxR(a,b)=0;G(a,b)=0;B(a,b)=0;elseR(a,b)=255;G(a,b)=255;B(a,b)=255;endendendR=uint8(R);%将类型转换为无符号8位数,即256位G=uint8(G);B=uint8(B);new=cat(3,R,G,B);subplot(122);imshow(new)title('彩色切割结果');2.4.2运行结果如图4图4彩色切割结果《数字图像处理》课程设计报告第7页共7页3.课程设计总结与体会通过此次课程设计,了解了彩色图像处理的方法。对专业英语通过上网查资料等慢慢的翻译出来,从而加深对题目的理解。此次课程设计对图片上某些特定的区域进行标记,首先要给出需标记的灰度范围,然后进行标记,最后处理之后图片为RGB图片。通过彩色图像直方图均衡化可以增强图片的亮度,以及6.4中队图像指定颜色进行切割等等使我都对彩色图像处理有了初步的了解。
本文标题:数字图像处理课程设计报告(冈萨雷斯版)
链接地址:https://www.777doc.com/doc-5113330 .html