最新《图像处理与机器视觉》作业.doc
精品资料图像处理与机器视觉作业.图像处理与机器视觉作 业姓名: XX 学号: XXX 专业: XXX 时间:2014年4月4日星期五作业一:图像增强1、 图像灰度变换。对图像(见图1)进行对比度拉伸,通过直方图获取灰度分布的最小、最大值。图1 灰度拉伸算法:采用直方图均衡化进行对比度拉伸close allclear allclcI=imread('图像增强.bmp');figure(1);subplot(221);imshow(I);title('原图');subplot(222);imhist(I);title('原图直方图');I1=histeq(I); %均衡化subplot(223);imshow(I1);title('均衡化效果'); subplot(224);imhist(I1);title('均衡化后直方图');分析:均衡化后灰度分布 最大 255 最小 0;均衡化处理后图像有更多细节显,示出来比如白色斑点变得清晰。2、设计K近邻均值(中值)滤波器,给出图像(见图)处理结果。1) 以待处理像素为中心,作一个m*m的作用模板。2) 在模板中,选择K个与待处理像素的灰度差为最小的像素。3) 将这K个像素的灰度均值(中值)替换掉原来的像素值。图2 图像滤波算法:采用3x3模板进行中值滤波。close allclear allclcI=imread('图像滤波.bmp');I1=medfilt2(I,3 3); % 3x3模板,中值滤波subplot(121);imshow(I);title('原图');subplot(122);imshow(I1);title('中值滤波结果');分析:中值滤波对椒盐噪声处理效果很好,不模糊边缘且使得图像变得清晰。作业二:图像变换1、 对图像(见图)用FFT算法从空域变换到频域;显示幅度频谱,使图像能量中心移到几何中心。将图像旋转450,再显示幅度频谱。图 4 图像变换 算法:使用fft()函数实现从空域变换到频域,fftshift()函数实现图像能量中心移到几何中心,imrotate()函数实现旋转。close allclear allclcI=imread('图像变换.bmp');figure(1);subplot(231);imshow(I);title('原图');fftI=fft2(I);rr=real(fftI);ii=imag(fftI);A=sqrt(rr.2+ii.2);A=(A-min(min(A)/(max(max(A)-min(min(A)*255;subplot(232);imshow(A);title('原图频谱');sfftI=fftshift(fftI);rr=real(sfftI);ii=imag(sfftI);A=sqrt(rr.2+ii.2);A=(A-min(min(A)/(max(max(A)-min(min(A)*255;subplot(233);imshow(A);title('能量中心移到几何中心');I2=imrotate(I,45,'nearest');subplot(234);imshow(I2);title('旋转45度');fftI=fft2(I2);rr=real(fftI);ii=imag(fftI);A=sqrt(rr.2+ii.2);A=(A-min(min(A)/(max(max(A)-min(min(A)*255;subplot(235);imshow(A);title('旋转45度后频谱');sfftI=fftshift(fftI);rr=real(sfftI);ii=imag(sfftI);A=sqrt(rr.2+ii.2);A=(A-min(min(A)/(max(max(A)-min(min(A)*255;subplot(236);imshow(A);title('旋转45度后能量中心移到几何中心');分析:fft()与fftshift()函数实现了频率中心与几何中心重合,imrotate()函数实现了图片旋转。作业三:图像编码与解码1、将十六位图像数据(170行×130列)转化为八位并显示(如图5)。图5 十六位图像显示算法:使用fopen()函数打开文件,使用fread()函数读取数据及转换数据类型,使用reshape()函数实现图像(二维数组)重构。close allclear allclcfid=fopen('十六位图像数据.dat','r');fr1=fread(fid,170*130,'uint8=>uint8');fclose(fid);I=reshape(fr1,170,130);figure(1);imshow(I);title('八位显示图');分析:使用以上函数实现了将十六位图像数据转化为八位并显示。作业四:图像分割1、采用合适方法对图像(见图7)进行边缘检测。图7 边缘检测边缘检测的原理:由于微分算子具有突出灰度变化的作用,对图像进行微分运算,在图像边缘处其灰度变化较大,故该处微分计算值较高,可将这些微分值作为相应点的边缘强度,通过阈值判别来提取边缘点,即如果微分值大于阈值,即为边缘。close allclear allclcI=imread('边缘检测.bmp');I1=edge(I,'canny');I2=edge(I,'sobel');I3=edge(I,'roberts');I4=edge(I,'prewitt');I5=edge(I,'log');figure(1);subplot(231);imshow(I);title('原图'); %采用不同边缘提取算子subplot(232);imshow(I1);title('canny');subplot(233);imshow(I2);title('sobel');subplot(234);imshow(I3);title('roberts');subplot(235);imshow(I4);title('prewitt');subplot(236);imshow(I5);title('log');结果分析:原图亮斑边缘灰度变化缓慢,没有明显的突变,以上五个算子中,canny算子处理效果较好,对弱边缘有比较详细的反映,其他算子边缘检测效果相对较差。