⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fouthorder.m

📁 图像增强matlab中的比较重要的 四阶降噪算法实现
💻 M
字号:
%求解四阶偏微分方程
%%%%%%%%%%%%%%%%%%
%准备工作:
%1.时间tao和空间h的划分
clear all
h=1.2;
tao=0.2;
h2=1.0/(h*h);
n=0;%记录循环次数
p=3;q=3;%矩阵的大小
%2.差分格式的乘积矩阵
A=[0 1 0;1 -4 1;0 1 0];
B=zeros(3);
C=[1 1 1;1 1 1;1 1 1];
%%%%%%%%%%%%%%%%%%%%%
% 读入图像
[filename,filepath]=uigetfile('*.jpg','请输入一个图像');
img=strcat(filepath,filename);

%图像灰度处理
color=imfinfo(img);
colortype=color.ColorType;   %获取图象颜色类型
%类型判断和相应的读取图像
switch(colortype)
    case 'truecolor'
        im0=rgb2gray(imread(img));%转化为灰度图像
    case  'indexed'
        [im0,map]=imread(img);
        im0=ind2gray(im,map);     %转化为灰度图像
    otherwise
        im0=imread(img);
end
%%%%%%%%%%%%%%%%%%%%%%
% gaussian
% im0 = imnoise(im0,'gaussian');
figure(1),imshow(im0);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%开辟所需空间,把原图像数字矩阵扩充两行两列
%1.准备工作
% im0=rgb2gray(im0);
[m,n]=size(im0);%求取矩阵大小
im1=zeros(m+2,n+2);%开辟一个新的矩阵空间
im2=zeros(m+2,n+2);%开辟一个新的矩阵空间
im3=zeros(m+2,n+2);%开辟一个新的矩阵空间
mean0=zeros(m+2,n+2);%开辟一个新的矩阵空间
var0=zeros(m+2,n+2);%开辟一个新的矩阵空间
max0=zeros(m+2,n+2);%开辟一个新的矩阵空间
g0=zeros(m+2,n+2);%开辟一个新的矩阵空间
g1=zeros(m+2,n+2);%开辟一个新的矩阵空间
g2=zeros(m+2,n+2);%开辟一个新的矩阵空间
%2.实现
im1(2:m+1,2:n+1)=im0(:,:);%把原来的矩阵值赋给它
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
while 1
    %求矩阵g1
    %1.求im0的5五点差分格式,得到矩阵im1
    for i=2:m+1
        for j=2:n+1
            %
            B=im1(i-1:i+1,j-1:j+1);
            im2(i,j)=h2*sum(sum(A.*B));
            %计算均值
            mean0(i,j)=sum(sum(B))/(p*q);%3*3
            %计算方差
            B1=B-mean0(i,j);
            var0(i,j)=sum(sum(B1.^2))/(p*q);
        end
    end
    %2.求g0=cu
        max0=max(max(var0));
        g0=1./(var0./max0.*abs(im2)/255+1);
    %3.求g0的5五点差分格式,得到矩阵g1
    for i=2:m+1
        for j=2:n+1
            B=g0(i-1:i+1,j-1:j+1);
            g1(i,j)=h2*sum(sum(A.*B));
        end
    end
    %4.求最后的差分格式
    g2=tao*g1;
    im3=im1-g2;%important
    %满足条件就退出循环
    n=n+1;
    if n>10
        break;
    end
    %更新原始矩阵
    im1=im3;
end %while
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%输出最后的矩阵图像
figure(2),imshow(mat2gray(im3(2:m,2:n)));

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -