《图像处理与机器视觉》作业姓名:XX学号:XXX专业:XXX时间:2014年4月4日星期五作业一:图像增强1、图像灰度变换。对图像(见图1)进行对比度拉伸,通过直方图获取灰度分布的最小、最大值。图1灰度拉伸算法:采用直方图均衡化进行对比度拉伸closeallclearallclcI=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模板进行中值滤波。closeallclearallclcI=imread('图像滤波.bmp');I1=medfilt2(I,[33]);%3x3模板,中值滤波subplot(121);imshow(I);title('原图');subplot(122);imshow(I1);title('中值滤波结果');分析:中值滤波对椒盐噪声处理效果很好,不模糊边缘且使得图像变得清晰。作业二:图像变换1、对图像(见图)用FFT算法从空域变换到频域;显示幅度频谱,使图像能量中心移到几何中心。将图像旋转450,再显示幅度频谱。图4图像变换算法:使用fft()函数实现从空域变换到频域,fftshift()函数实现图像能量中心移到几何中心,imrotate()函数实现旋转。closeallclearallclcI=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()函数实现图像(二维数组)重构。closeallclearallclcfid=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边缘检测边缘检测的原理:由于微分算子具有突出灰度变化的作用,对图像进行微分运算,在图像边缘处其灰度变化较大,故该处微分计算值较高,可将这些微分值作为相应点的边缘强度,通过阈值判别来提取边缘点,即如果微分值大于阈值,即为边缘。closeallclearallclcI=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算子处理效果较好,对弱边缘有比较详细的反映,其他算子边缘检测效果相对较差。