为什么我没有得到确切的图像?

时间:2014-09-07 17:36:11

标签: matlab

this is the image i'm getting after running the program

and this is the original image which i was reading in imread command

我正在将图像值转换为二进制形式,然后将它们转换回十进制并想要显示图像,但无法将它们正确地转换回来..有人可以帮助我,为什么会这样? 我的图片大小为[720x1280x3]。 imshow(图像)和imshow(d)不显示相同的图像。有人可以帮我解决这个问题吗?上面的图像是我在运行代码后得到的图像,下面的图像是我在代码开头读取的图像。

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

1 个答案:

答案 0 :(得分:4)

函数bin2dec()会返回double,而不是像uint8期望的imshow()。以下作品:

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