我正在将图像值转换为二进制形式,然后将它们转换回十进制并想要显示图像,但无法将它们正确地转换回来..有人可以帮助我,为什么会这样? 我的图片大小为[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);
答案 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);