cc=imread('<a href=“http://upload.wikimedia.org/wikipedia/commons/thumb/d/d6/Pavlovsk_Railing_of_bridge_Yellow_palace_Winter.jpg/250px-Pavlovsk_Railing_of_bridge_Yellow_palace_Winter.jpg”>wintersm.jpg</a>');
c=rgb2gray(cc);
x=ones(256,1)*[1:256];
c2=double(c).*(x/2+50)+(1-double(c)).*x/2;
c3=uint8(255*mat2gray(c2));
t=graythresh(c3);
ct=im2bw(c3,t);
这是我编写的用于阈值图像的代码但由于错误而无法执行#34; ==&GT;时 矩阵尺寸必须一致。 &#34; 。我是matlab的新手,我无法弄清楚如何解决这个问题。请帮忙。
答案 0 :(得分:1)
我运行了你的代码,但在c2=double(c).*(x/2+50)+(1-double(c)).*x/2;
之前添加了以下行,我添加了这个:
size(x)
size(c)
你得到以下打印输出:
ans =
256 256
ans =
169 250
基本上说,图像不是您认为的尺寸,而是混合矩阵尺寸。
答案 1 :(得分:1)
我查看了图片,大小为169x250
。因此size(c) = [169 250]
而size(x) = [256 256]
。由于.*
和c
之间的x
操作需要两者都具有相同的大小,因此它会给出错误。
重新定义x
,使其大小与c