I am working on Speckle reduction in ultrasound images. I read a paper (snapshot of that paper is included below) where they have used a metric called beta metric which indicates the edge preserving capability of the filters. I tried to implement it using the equation (7) provided in the below snapshot.

Beta Metrics

This is the code.

 %---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))));

As you can see that the beta value is a single value [1x1] vector in Table 2 inside the snapshot. But when I run my code, I get beta value of size 1x256 for a 256x256 image. Is my code wrong? How to implement the given equation (7) correctly in MATLAB? Please help.


1 Answer 1


The correct code is

metrics.Beta = sum(sum((I1 - I_1).*(I2 - I_2)))./(sqrt(sum(sum((I1 - I_1).^2))).*(sum(sum((I2 - I_2).^2))));

The reference you have shown is incorrect, reffr paper:

2013 August Gregorio - ‘A suitable threshold for speckle reduction in ultrasound images’, IEEE transactions on instrumentations and measurement


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.