实验二空间域图像处理理解和掌握图像的线性变换和直方图均衡化的原理和应用;了解平滑和锐化处理的算法和用途,学习使用平滑滤波器和边缘算子对图像进行平滑和锐化操作实验步骤1.图像直方图(1)读入一幅图像,计算并绘制图像的直方图sample=imread('sample.jpg');imshow(sample);[M,N]=size(sample);[counts,x]=imhist(sample,32);counts=counts/M/N;stem(x,counts);绘制文件名为sample.jpg的图像的直方图。(2)读入一幅低对比度图像,对图像进行直方图均衡化处理histeqSample=histeq(sample);(3)使用’subplot’命令,将原始图像、原始图像直方图、均衡化处理后的图像、均衡化处理后图像直方图同时显示出来。subplot(2,2,1);imshow(sample);%原始图像subplot(2,2,2);stem(x,counts);%原始图像直方图subplot(2,2,3);imshow(histeqSample);%均衡化处理后的图像subplot(2,2,4);[M,N]=size(histeqSample);[counts,x]=imhist(histeqSample,32);counts=counts/M/N;stem(x,counts);%均衡化处理后图像直方图2.编写程序,实现以下功能:(1)读入一幅图像,利用’imnoise’函数,添加高斯噪声;clearall;sample=imread('sample.jpg');gaussianSample=imnoise(sample,'gaussian');imshow(gaussianSample);(2)通过100次相加求平均的方法去除噪声。sumSample=zeros(500,500);fori=1:100gaussianSample=imnoise(sample,'gaussian');tmp=im2double(gaussianSample);sumSample=sumSample+tmp;end;meanSample=sumSample./100;imshow(meanSample);(3)使用’subplot’命令,将原始图像,添加高斯噪声后的图像,以及去除噪声后的图像同时显示出来。subplot(1,3,1);imshow(sample);%原始图像subplot(1,3,2);imshow(gaussianSample);%添加高斯噪声后的图像subplot(1,3,3);imshow(meanSample);%去除噪声后的图像3.图像的平滑和锐化滤波(1)读入一幅图像,分别采用均值和高斯滤波器对图像进行平滑处理clearall;sample=imread('sample.jpg');mean3Sample=filter2(fspecial('average',3),sample)/255;mean5Sample=filter2(fspecial('average',5),sample)/255;mean7Sample=filter2(fspecial('average',7),sample)/255;gaussianSample=filter2(fspecial('gaussian'),sample)/255;(2)使用’subplot’命令,将原始图像,平滑处理后的图像同时显示出来subplot(2,2,1);imshow(sample);%原始图像subplot(2,2,2);imshow(mean7Sample);%采用均值进行平滑处理subplot(2,2,3);imshow(sample);%原始图像subplot(2,2,4);imshow(gaussianSample);%高斯滤波器进行平滑处理(3)分别采用’prewitt’和’sobel’边缘算子对图像做边缘增强处理,并显示边缘处理后的图像采用’prewitt’算子:prewittSample=uint8(filter2(fspecial('prewitt'),sample));imshow(prewittSample);采用’sobel’算子:sobelSample=uint8(filter2(fspecial('sobel'),sample));imshow(sobelSample);(4)采用“原图*2-平滑图像”,以及“原图+边缘处理图像”的方法锐化图像采用“原图*2-平滑图像”方法:subSample=sample.*2-uint8(mean7Sample);imshow(subSample);采用“原图+边缘处理图像”方法addSample=sample+uint8(prewittSample);imshow(addSample);(5)使用’subplot’命令,将原始图像,和锐化处理后的图像同时显示出来。subplot(1,3,1);imshow(sample);%原始图像subplot(1,3,2);imshow(subSample);%“原图*2-平滑图像”方法锐化处理后的图像subplot(1,3,3);imshow(addSample);%“原图+边缘处理图像”方法锐化处理后的图像4.总结通过这次实验,我基本掌握了图像的线性变换和直方图的应用,学会了通过MATLAB使用平滑滤波器和边缘算子对图像进行平滑和锐化操作。