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

Risposte (1)

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

2 Commenti

Jemela Llanes
Jemela Llanes il 22 Set 2017
Modificato: Jemela Llanes il 22 Set 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?
Image Analyst
Image Analyst il 22 Set 2017
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.

Accedi per commentare.

Tag

Richiesto:

il 21 Set 2017

Commentato:

il 22 Set 2017

Community Treasure Hunt

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

Start Hunting!

Translated by