zoukankan      html  css  js  c++  java
  • 小波在图像处理中的应用

    小波在图像处理中的应用

    基于小波的不同方法的图像去噪

    基于不同的原理,小波去噪去相同图像有什么影响

    结论:

    close all; clear all;clc;
    load gatlin2; %装载并显示原始图像
    init=2055615866; %生成含噪图象并显示
    randn('seed',init)
    XX=X+2*randn(size(X));
    [c,l]=wavedec2(XX,2,'sym4'); %对图像进行消噪处理,用 sym4 小波函数对 x 进行两层分解
    a2=wrcoef2('a',c,l,'sym4',2); %重构第二层图像的近似系数
    n=[1,2]; %设置尺度向量
    p=[10.28,24.08]; %设置阈值向量
    nc=wthcoef2('t',c,l,n,p,'s'); %对高频小波系数进行阈值处理
    mc=wthcoef2('t',nc,l,n,p,'s'); %再次对高频小波系数进行阈值处理
    X2=waverec2(mc,l,'sym4'); %图像的二维小波重构
    set(0,'defaultFigurePosition',[100,100,1000,500]); %修改图形图像位置的默认设置
    set(0,'defaultFigureColor',[1 1 1]) %修改图形背景颜色的设置
    figure % 显示原图像及处理以后结果
    colormap(map)
    subplot(131),image(XX),axis square;
    subplot(132),image(a2),axis square;
    subplot(133),image(X2),axis square;
    Ps=sum(sum((X-mean(mean(X))).^2)); %计算信噪比
    Pn=sum(sum((a2-X).^2));
    disp('利用小波 2 层分解去噪的信噪比')
    snr1=10*log10(Ps/Pn)
    disp('利用小波阈值去噪的信噪比')
    Pn1=sum(sum((X2-X).^2));
    snr2=10*log10(Ps/Pn1)
    

    采用相同的方法,母小波不同的情况下,小波阈值去噪效果有什么变化

    结论:

    close all; clear all;clc;
    load flujet; %装载并显示原始图像
    init=2055615866; %生成含噪声图像并显示
    XX=X+8*randn(size(X));
    n=[1,2]; %设置尺度向量
    p=[10.28,24.08]; %设置阈值向量
    [c,l]=wavedec2(XX,2,'db2'); %用小波函数 db2 对图像 XX 进行 2 层分解
    nc=wthcoef2('t',c,l,n,p,'s'); %对高频小波系数进行阈值处理
    mc=wthcoef2('t',nc,l,n,p,'s'); %再次对高频小波系数进行阈值处理
    X2=waverec2(mc,l,'db2'); %图像的二维小波重构
    [c1,l1]=wavedec2(XX,2,'sym4'); %首先用小波函数sym4对图像XX进行2层分解
    nc1=wthcoef2('t',c1,l1,n,p,'s'); %对高频小波系数进行阈值处理
    mc1=wthcoef2('t',nc1,l1,n,p,'s'); %再次对高频小波系数进行阈值处理
    X3=waverec2(mc1,l1,'sym4'); %图像的二维小波重构
    set(0,'defaultFigurePosition',[100,100,1000,500]); %修改图形图像位置的默认设置
    set(0,'defaultFigureColor',[1 1 1]) %修改图形背景颜色的设置
    figure %显示原图像及处理以后结果
    colormap(map)
    subplot(121);image(X);axis square;
    subplot(122);image(XX);axis square;
    figure
    colormap(map)
    subplot(121);image(X2);axis square;
    subplot(122);image(X3);axis square;
    Ps=sum(sum((X-mean(mean(X))).^2)); %计算信噪比
    Pn=sum(sum((XX-X).^2));
    Pn1=sum(sum((X2-X).^2));
    Pn2=sum(sum((X3-X).^2));
    disp('未处理的含噪声图像信噪比')
    snr=10*log10(Ps/Pn)
    disp('采用 db2 进行小波去噪的图像信噪比')
    snr1=10*log10(Ps/Pn1)
    disp('采用 sym4 进行小波去噪的图像信噪比')
    snr2=10*log10(Ps/Pn2)
    

    基于小波的频域滤波和时域滤波,对图像有什么影响

    结论:

    close all; clear all;clc;
    X=imread('6.bmp'); %把原图象转化为灰度图像,装载并显示
    X=double(rgb2gray(X));
    init=2055615866; %生成含噪图象并显示
    randn('seed',init)
    X1=X+25*randn(size(X)); %生成含噪图像并显示
    [thr,sorh,keepapp]=ddencmp('den','wv',X1); %消噪处理:设置函数 wpdencmp 的消噪参数
    X2=wdencmp('gbl',X1,'sym4',2,thr,sorh,keepapp);
    X3=X; %保存纯净的原图像
    for i=2:577;
    for j=2:579
    MATLAB 图像处理实例详解
    113
    Xtemp=0;
    for m=1:3
    for n=1:3
    Xtemp=Xtemp+X1((i+m)-2,(j+n)-2);%对图像进行平滑处理以增强消
    噪效果(中值滤波)
    end
    end
    Xtemp=Xtemp/9;
    X3(i-1,j-1)=Xtemp;
    end
    end
    set(0,'defaultFigurePosition',[100,100,1000,500]); %修改图形图像位置的默认设置
    set(0,'defaultFigureColor',[1 1 1]) %修改图形背景颜色的设置
    figure
    subplot(121);imshow(uint8(X)); axis square; %画出原图象
    subplot(122);imshow(uint8(X1));axis square; %画出含噪声图象
    figure
    subplot(121),imshow(uint8(X2)),axis square; %画出消噪后的图像
    subplot(122),imshow(uint8(X3)),axis square; %显示结果
    Ps=sum(sum((X-mean(mean(X))).^2)); %计算信噪比
    Pn=sum(sum((X1-X).^2));
    Pn1=sum(sum((X2-X).^2));
    Pn2=sum(sum((X3-X).^2));
    disp('未处理的含噪声图像信噪比')
    snr=10*log10(Ps/Pn)
    disp('采用小波全局阈值滤波的去噪图像信噪比')
    snr1=10*log10(Ps/Pn1)
    disp('采用中值滤波的去噪图像信噪比')
    snr2=10*log10(Ps/Pn2)
    
  • 相关阅读:
    DataTables中自增序号的实现
    MVC中调用模态框之后导致JS失效
    teamviewer13破解版
    屏幕录制专家破解版
    Navicat Premium 12 (内含破解补丁)
    Navicat新建连接出现10060 "Unknown error" 错误
    Windows添加永久路由
    VMware虚拟机下Linux网络配置——桥接模式
    文件基本属性
    ifconfig: command not found
  • 原文地址:https://www.cnblogs.com/senup/p/12064090.html
Copyright © 2011-2022 走看看