Matlab learning 7-linear smoothing filter for image processing

Tip: After the article is written, the table of contents can be automatically generated. How to generate it can refer to the help document on the right


foreword

Spatial filtering enhancement

  • Convolution principle
    • Multi-dimensional continuous convolution
  • linear smoothing filter
    • Domain averaging, selective averaging, Wiener filtering
  • nonlinear smoothing filter
    • median filter
  • Linear sharpening filter
    • Laplacian operator
  • nonlinear sharpening filter
    • Prewitt operator
    • Sobel operator
    • Log operator

Matlab Learning 7-Linear smoothing filter for image processing
Domain averaging method, selection averaging method, Wiener filtering


1. Select the average method to filter and denoise

Effect
insert image description here

the code

% 选择平均法滤波去噪
img =imread("img/test.bmp");
subplot(2,3,1);imshow(img),xlabel("原始图像");

% 均值滤波
K1=filter2(fspecial("average",3),img);
subplot(2,3,2);imshow(uint8(K1)),xlabel("原图3*3卷积和均值滤波");

%卷积和 或模板
mask=[  0 0 0
        0 1 1
        0 1 1];
mask=1/4*mask;
K2=filter2(mask,img);
subplot(2,3,3);imshow(uint8(K2)),xlabel("原图选择平均卷积和均值滤波");

ju=imnoise(img,"salt & pepper",0.04);
subplot(2,3,4);imshow(ju),xlabel("噪声图像");

% 均值滤波
K3=filter2(fspecial("average",3),ju);
subplot(2,3,5);imshow(uint8(K3)),xlabel("噪声图像3*3卷积和均值滤波");
%卷积和 或模板
mask=[  0 0 0
        0 1 1
        0 1 1];
mask=1/4*mask;
K4=filter2(mask,ju);
subplot(2,3,6);imshow(uint8(K4)),xlabel("噪声图像选择平均卷积和均值滤波");

2. Field averaging method for denoising

Effect
insert image description here

the code

%领域平均法去噪
img =imread("img/eight.tif");
subplot(2,3,1);imshow(img),xlabel("原始图像");

ju=imnoise(img,"salt & pepper",0.004);
subplot(2,3,2);imshow(ju),xlabel("噪声图像");
% 均值滤波
K1=filter2(fspecial("average",3),ju);
subplot(2,3,3);imshow(uint8(K1)),xlabel("3*3卷积和均值滤波");

K2=filter2(fspecial("average",5),ju);
subplot(2,3,4);imshow(uint8(K2)),xlabel("5*5卷积和均值滤波");

%卷积和 或模板
mask4=[ 0 1 0
        1 0 1
        0 1 0];
mask4=1/4*mask4;
K3=filter2(mask4,ju);
subplot(2,3,5);imshow(uint8(K3)),xlabel("4邻域卷积和均值滤波");


mask8=[ 1 1 1
        1 0 1
        1 1 1];
mask8=1/8*mask8;
K4=filter2(mask8,ju);
subplot(2,3,6);imshow(uint8(K4)),xlabel("8邻域卷积和均值滤波");

3. Wiener filter

Effect
insert image description here

the code

% Wiener滤波
img =imread("img/eight.tif");
subplot(2,3,1);imshow(img),xlabel("原始图像");
ju=imnoise(img,"salt & pepper",0.04);
subplot(2,3,2);imshow(ju),xlabel("噪声图像");

K1=wiener2(ju,[3,3]);
subplot(2,3,3);imshow(K1),xlabel("噪声图像3*3Wiener滤波");
K2=wiener2(ju,[5,5]);
subplot(2,3,4);imshow(K2),xlabel("噪声图像5*5Wiener滤波");
K3=wiener2(ju,[7,7]);
subplot(2,3,5);imshow(K3),xlabel("噪声图像7*7Wiener滤波");
K4=wiener2(ju,[9,9]);
subplot(2,3,6);imshow(K4),xlabel("噪声图像9*9Wiener滤波");

4. Linear smoothing filter

the code

%线性平滑滤波
Fxy=[0 20 40 70
    80 100 120 150
    160 180 200 230];
uint8Fxy=uint8(Fxy);
subplot(2,2,1),imshow(uint8Fxy),xlabel("原始图像");
subplot(2,2,2),imhist(uint8Fxy),axis([0,255,0,1]),xlabel("原始图像的直方图","position",[120,-0.23]);

%平滑操作,作用模糊,去噪
Gxy=filter2(fspecial("average",3),uint8Fxy);
uint8Gxy=uint8(Gxy);
subplot(2,2,3),imshow(uint8Gxy),xlabel("均值滤波后的图像");
subplot(2,2,4),imhist(uint8Gxy),axis([0,255,0,1]),xlabel("滤波后图像的直方图","position",[120,-0.23]);

Click to get the source code
https://gitee.com/CYFreud/matlab/tree/master/image_processing/demo7_220418

Guess you like

Origin blog.csdn.net/CHengYuP/article/details/125037315