Matlab 为什么我得不到准确的图像?

Matlab 为什么我得不到准确的图像?,matlab,Matlab,我正在将图像值转换为二进制格式,然后将其转换回十进制格式,并希望显示图像,但无法正确转换回。。谁能帮帮我为什么会这样? 我的图像大小为[720x1280x3]。imshowimage和imshowd显示的图像不相同。有人能帮我解决这个问题吗?上面的图像是我运行代码后得到的图像,下面的图像是我在代码开始时读取的图像 image=imread('my pic.jpg'); imshow(image); [rows cols third]=size(image);

我正在将图像值转换为二进制格式,然后将其转换回十进制格式,并希望显示图像,但无法正确转换回。。谁能帮帮我为什么会这样? 我的图像大小为[720x1280x3]。imshowimage和imshowd显示的图像不相同。有人能帮我解决这个问题吗?上面的图像是我运行代码后得到的图像,下面的图像是我在代码开始时读取的图像

    image=imread('my pic.jpg');
    imshow(image);

    [rows cols third]=size(image);

    b=dec2bin(image);
    c=bin2dec(b);
    d=reshape(c,rows,cols,third);
    imshow(d);
函数bin2dec返回一个double,而不是imshow期望的uint8。以下工作:

image=imread('my pic.jpg');
imshow(image);

[rows cols third]=size(image);

b=dec2bin(image);
c=uint8(bin2dec(b));
d=reshape(c,rows,cols,third);
imshow(d);
函数bin2dec返回一个double,而不是imshow期望的uint8。以下工作:

image=imread('my pic.jpg');
imshow(image);

[rows cols third]=size(image);

b=dec2bin(image);
c=uint8(bin2dec(b));
d=reshape(c,rows,cols,third);
imshow(d);

你能给我们看一下显示的内容吗?@AnderBiguri我已经编辑了我的问题,并给出了图片。上面的图片是我运行此代码后得到的图片,下面的图片是我在代码开头阅读的原始图片。你能告诉我们显示了什么吗?@AnderBiguri我编辑了我的问题,并给出了图片。上面的图片是我运行此代码后得到的图片,下面的图片是我在代码开头阅读的原始图片。bin2dec返回一个double,而不是int32。不管怎样,回答得好!另一个让人遗憾的错误是:imshow不介意使用double,只要值在[0,1]之间标准化。OP获得主要饱和输出的原因是,输出最初是双精度类型,并且大多数值大于1。请注意。bin2dec返回一个double,而不是int32。不管怎样,回答得好!另一个让人遗憾的错误是:imshow不介意使用double,只要值在[0,1]之间标准化。OP获得主要饱和输出的原因是,输出最初是双精度类型,并且大多数值大于1。