图像的空间域变化

% 图像的平滑可以在空间域和频率域进行讨论
% 这次是空间域的讨论
% 掩模——模板操作:(掩模中心对齐之后,掩模超出矩阵的部分,认为该位置,矩阵的元素为0进行计算)
% 1:将模板在图中漫游,并将模板中心与某像素重合
% 2:将模板系数与模板下对应像素相乘,将所有乘积相加      
% 3:将上述求和结果富裕模板中心对应像素
% 缺点:降低噪音的同时使图像模糊

% 图像的空间域平滑——中值滤波
% 中值滤波是对一个滑动窗口内的所有像素灰度值排序,用中值代表窗口中心像素的原来灰度值
% 例如,采用1*3窗口
% 原图像:2 2 6 2 1 2 4 4 4 2 4
% 处理后:2 2 2 2 2 2 4 4 4 4 4 
% 对于原图像最右边的4,其不能成为窗口中间,所以其值不进行改变
% 中值滤波对脉冲干扰及椒盐噪声的抑制效果好,在抑制随机噪声的同时能有效保护边缘
% 少受模糊。但是对点、线等细节较多的图像并不适合

mImg = imread("C:\Users\Administrator\Desktop\matlab博客园\05 图像增强2\Pepper.bmp");
mImg = rgb2gray(mImg);
% figure;
% imshow(mImg);
mImgnoise = imnoise(mImg,'salt & pepper',0.1); %添加椒盐噪声污染
% figure;
% imshow(mImg);
mblock = [1 1 1 ;1 1 1 ;1 1 1 ]/9;  %掩模模板
mImgfilter=filter2(mblock,mImgnoise);%在矩阵mImgnoise上使用掩模模板mblock进行掩模
mblock=fspecial('average',3);%产生均值滤波,为3*3,默认为3,
mImgfilter=mat2gray(mImgfilter);
mImgfilter1=medfilt2(mImgnoise,[7 7]);
mImgfilte1=mat2gray(mImgfilter1);
figure;
subplot(221),imshow(mImg);
subplot(222),imshow(mImgnoise);
subplot(223),imshow(mImgfilter);
subplot(224),imshow(mImgfilter1);


% 图像的空间域锐化——梯度锐化法
% 在图像的识别中常需要突出边缘和轮廓信息。图像锐化就是增强图像的边缘或轮廓
% 梯度锐化法
% 对于图像f(x,y),在(x,y)出的梯度grad(x,y)=[x方向的偏导;y方向的偏导]
% 根据梯度计算式就可以计算Roberts,Prewitt和Sobel梯度。一旦梯度算出后,就可根据不同的
% 需要生成不同的梯度增强图像
% 第一种输出方式:g(x,y)=grad(x,y);
% 这种方法的缺点是增强的图像仅显示灰度变化比较陡的边缘,而灰度变化比较平缓或均匀的区域则呈黑色
% 第二种输出形式g(x,y)=grad(x,y)当grad(x,y)大于一个常数的时候,否则g(x,y)=f(x,y)
% 选取适当的常数,可使明显的边缘轮廓得到突出,又不会破坏原来灰度变化比较平缓的背景
% 第三种输出形式g(x,y)=Lg当g(x,y)大于一个常数的时候,否则g(x,y)=f(x,y)
% 将明显边缘用一个固定的灰度级Lg来表示
% 第四种输出形式g(x,y)=grad(x,y)当grad(x,y)大于等于一个常数,都咋g(x,y)=Lb
% 将背景用一个固定的灰度级Lb来表示,便于研究边缘灰度的变化
% 第五种输出形式 g(x,y)=Lg当grad(x,y)大于等于一个常数,否则g(x,y)=Lb
% 将明显边缘和北京分别用灰度级Lg和Lb表示,生成二值图像,便于研究边缘所在位置

  

 

 

posted @ 2020-11-11 21:21  白菜茄子  阅读(244)  评论(0编辑  收藏  举报