我在MATLAB中遇到数据类型问题。它是将二进制转换为十进制的简单代码。对于我的进一步任务,那些应该是整数64位。我该怎么做?
此代码将这些值转换为double。并且,铸造没有帮助;例如,对于第一个值,sum为4.0265e+09
但是在通过Y = typecast(sum, 'int64');
投射后,它会生成4750734656922451968
,这不是正确的值。
example.png :
I = imread('example.png');
level = graythresh(I);
img = im2bw(I,level);
sz=size(img);
for i=1:sz(1)
sum=0;
p=1;
for j=sz(2):-1:1
sum=sum+img(i,j)*p;
p=p*2;
end
disp(sum);
end