我正在使用不同类型的过滤器来消除超声图像中的散斑噪声。我把下面的论文作为我的基础论文,并试图重现这篇论文的结果:
我设计了所有过滤器并使用默认的 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