sbgeqh2007 发表于 2007-6-13 16:04

图象正反算子不能复原的问题

大侠们帮帮忙,帮我看一下这段代码

x=imread('F:\1.bmp');
=size(x)
figure(1);
image(x);

y=dec2bin(x);
y1=bin2dec(y);

figure(2);
y1=reshape(y1,s,b);
image(y1);
我只是进行了一个反操作,按理说y1应该等于x呀,为什么两个显示出来的图像简直就不是一回事?

[ 本帖最后由 eight 于 2007-6-13 16:07 编辑 ]

eight 发表于 2007-6-13 16:06

原帖由 sbgeqh2007 于 2007-6-13 16:04 发表 http://www.chinavib.com/forum/images/common/back.gif
大侠们帮帮忙,帮我看一下这段代码

x=imread('F:\1.bmp');
=size(x)
figure(1);
image(x);

y=dec2bin(x);
y1=bin2dec(y);

figure(2);
y1=reshape(y1,s,b);
image(y1);
我只是进行了一个反操 ...

请保证输入图象并非RGB格式,否则矩阵 x 是三维的。这种错误其实自己调试一下就知道原因了

ps:不明白你使用 dec2bin 在干什么

花如月 发表于 2007-6-13 16:26

虽然不明白你是什么目的,但是还是帮你做出来了
clear;
x=imread('1.bmp');
=size(x);
figure(1);
imshow(x);
y=dec2bin(x);
y1=bin2dec(y);
figure(2)
y1=reshape(uint8(y1),s,b);
imshow(y1);
运行后在命令行键入:
>> A=x-y1;
>> sum(A(:))
ans =
   0
>>

说明二者是完全相等的
错误原因:数据类型不相同


[ 本帖最后由 花如月 于 2007-6-13 16:36 编辑 ]
页: [1]
查看完整版本: 图象正反算子不能复原的问题