Error using psnr function

I used [peaksnr, snr] = psnr(B, A) wherein A is a binary image and B, the same image but a weiner2 function applied to it.
An error then is outputted
Error using psnr
Expected input number 1, A, to be one of these types:
uint8, uint16, int16, single, double
Instead its type was logical.
Error in psnr>checkImages (line 71)
validateattributes(A,validImageTypes,{'nonsparse'},mfilename,'A',1);
Error in psnr (line 39)
checkImages(A,ref);

Answers (1)

So? Just cast it to one of those data types like it suggested.
[peaksnr, snr] = psnr(double(B), double(A))

2 Comments

Jemela Llanes
Jemela Llanes on 22 Sep 2017
Edited: Jemela Llanes on 22 Sep 2017
Thank you. It worked and as I try it on other formats, the values of PSNR changes. Is there any basis on which format should I use?
I'm using PSNR to calculate how much an image improved after applying a wiener2 noise removal filter. Is it wise to use this method for this purpose?
I think PSNR is usually used to measure compression/decompression accuracy but I suppose you could use it. I think immse() or computing MAD (mean absolute difference) would be better.

Sign in to comment.

Tags

Asked:

on 21 Sep 2017

Commented:

on 22 Sep 2017

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!