Can u solve this error?

2 次查看(过去 30 天)
Sanjeeb Behera
Sanjeeb Behera 2016-9-20
n=size(I);
M=n(1);
N=n(2);
MSE = sum(sum((I-II).^2.0))/(M*N);
PSNR = 10*log10(256*256/MSE);
fprintf('\nMSE: %7.2f', MSE);
fprintf('\nPSNR: %9.7f dB', PSNR);
Here i am calculating the PSNR and MSE of I and II but it gives error
Integers can only be combined with integers of the same class, or scalar doubles.
Error in ==> Spatial_thesis at 58
MSE = sum(sum((I-II).^2.0))/(M*N);
I have taken
I=uint8(X);
II = logical(I8)*128+logical(I7)*64+logical(I6)*32+logical(I5)*16+logical(I4)*8+logical(I3)*4+logical(I2)*2+logical(I1);
  2 个评论
mbonus
mbonus 2016-9-20
编辑:mbonus 2016-9-20
type whos for each variable and compare the types
Geoff Hayes
Geoff Hayes 2016-9-20
Sanjeeb - how are I and II initialized?

请先登录,再进行评论。

回答(1 个)

Image Analyst
Image Analyst 2016-9-20
Use the built-in functions psnr() and immse(). Or else see my attached demo, or cast both I and II to double:
I = double(I);
II = double(II);

Community Treasure Hunt

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

Start Hunting!

Translated by