图像算法学习 - 磨皮算法

1.局部均值:

function DstImg = FuncLSNFilter(SrcImg,r,k) 
% Function : 局部方差去噪及磨皮算法SrcImg:原始图像,r:滤波半径,k:滤波系数
% SrcImg   : 灰度图像
% r        : 滤波半径
% k        : 滤波系数
% History  : 2021.xx.xx - 初次创建
% Example  : 
% clear;  close all;  clc;  warning off all; 
% SrcImg = imread('112.jpg');
% SrcImgGray = rgb2gray(SrcImg);%转换成灰度图像
% r = 3;
% k = 10;
% DstImg = FuncLSNFilter(SrcImgGray,r,k);
% subplot(1,2,1);imshow(SrcImgGray);title('原始灰度图像');  
% subplot(1,2,2);imshow(uint8(DstImg));title('局部方差图像增强');  
% *************************************************************************
[rows,cols,~] = size(SrcImg);
DstImg = zeros(rows,cols);
ImgProcess = padarray(SrcImg, [r,r]);
glVar = std2(SrcImg).^2;%全局图像方差 
for i=1:rows
    for j=1:cols 
    	windowsimg = ImgProcess(i:i+r-1,j:j+r-1);%局部图像  
        windowsmean = mean2(windowsimg);%计算局部均值
        windows1 = (windowsimg - windowsmean).^2;%计算局部方差
        windows2 = sum(windows1(:));
        windows3 = windows2/(r*r-1);
      	%k = 10 + k*k*5;
      	%Parameter = glVar/windows3;%计算增益系数
     	Parameter = windows3/(windows3 + k);  
      	%Parameter = glVar/(glVar + k);  
        DstImg(i,j) = windowsmean + Parameter.*(SrcImg(i,j) - windowsmean);
    end
end

图像算法学习 - 磨皮算法_第1张图片

 

你可能感兴趣的:(01,-,Matlab笔记,算法,matlab)