为什么超声图像的 PSNR 会降低?

信息处理 图像处理 matlab 噪音
2022-02-05 01:19:03

我正在使用不同类型的过滤器来消除超声图像中的散斑噪声。我把下面的论文作为我的基础论文,并试图重现这篇论文的结果:

我的原纸

我设计了所有过滤器并使用默认的 matlab 图像进行了测试。我对结果很满意。滤波图像的均方误差(MSE)小于噪声图像,滤波图像的信噪比(SNR)和峰值信噪比(PSNR)大于噪声图像。

但可悲的是,当我尝试将其用于超声图像时,结果却相反。即滤波图像的MSE大于Noisy Image,滤波图像的SNR和PSNR小于Noisy Image。

我尝试了许多其他超声图像,但无法正确处理。

Lena.jpg 的搜索结果

莉娜

*******质量测量***********

*******嘈杂的图像***********

均方误差 = 0.0080186

信噪比 (SNR) = 69.4875

峰值信噪比 (PSNR) = 69.0898

*******3 x 3 中值过滤器***********

均方误差 = 0.00257916

信噪比 (SNR) = 74.4137

峰值信噪比 (PSNR) = 74.016

*******5 x 5 中值过滤器***********

均方误差 = 0.00188434

信噪比 (SNR) = 75.7769

峰值信噪比 (PSNR) = 75.3792

*******7 x 7 中值过滤器***********

均方误差 = 0.00208378

信噪比 (SNR) = 75.34

峰值信噪比 (PSNR) = 74.9423

超声结果.jpg

超声图像的结果

*******质量测量***********

*******嘈杂的图像***********

均方误差 = 0.00153502

信噪比 (SNR) = 64.8881

峰值信噪比 (PSNR) = 76.2697

*******3 x 3 中值过滤器***********

均方误差 = 0.00770785

信噪比 (SNR) = 57.8799

峰值信噪比 (PSNR) = 69.2615

*******5 x 5 中值过滤器***********

均方误差 = 0.00810142

信噪比 (SNR) = 57.6637

峰值信噪比 (PSNR) = 69.0452

*******7 x 7 中值过滤器***********

均方误差 = 0.00853159

信噪比 (SNR) = 57.439

峰值信噪比 (PSNR) = 68.8205


我不确定为什么我会得到这样的结果。我添加了用于质量测量的代码。如果我做错了什么,请纠正我。

function metrics = Metrics1(Orig_Image,Esti_Image)


    %---Mean-Square Error(MSE) Calculation
    Orig_Image = im2double(Orig_Image);%---Convert image to double class
    Esti_Image = im2double(Esti_Image);%---Convert image to double class
    [M N] = size(Orig_Image);%---Size of Original Image
    err = Orig_Image - Esti_Image;%---Difference between two images
    metrics.M_SE = (sum(sum(err .* err)))/(M * N);

    %---Signal-to-Noise Ratio(SNR) Calculation
    metrics.SNR = 10*log10((1/M*N)*sum(sum(Orig_Image.*Orig_Image))/(metrics.M_SE));

    %---Peak Signal-to-Noise Ratio(PSNR) Calculation 
    if(metrics.M_SE > 0)
        metrics.PSNR = 10*log10(255*255/metrics.M_SE);
    else
        metrics.PSNR = 99;
    end

     %---Mean and Standard Deviation

    %---Beta Calculation
    h = fspecial('laplacian');
    I1 = imfilter(Orig_Image,h);
    I2 = imfilter(Esti_Image,h);
    I_1 = mean2(I1);
    I_2 = mean2(I2);
    metrics.Beta = sum(sum((I1 - I_1).*(I2 - I_2)))./(sqrt(sum(((I1 - I_1).^2).*((I2 - I_2).^2))));
end
0个回答
没有发现任何回复~