我拍摄了带有字符的扫描图像,裁剪了字符并将其存储在矩阵中。
X={};
Y={};
for cnt = 1:50
rectangle('position',box(:,cnt),'edgecolor','r');
X{cnt}=imcrop(I, box(:,cnt));
Y{cnt}=im2bw(X{cnt});
end
这里,box有矩形的坐标。我想使用Y作为newsom
的输入来创建自组织地图。但是我得到了错误:
net = newsom(Y',[10,1])
???使用==>时出错猫
CAT参数维度不一致。==>中的错误cell2mat at 89
m {n} = cat(1,c {:,n});==>中的错误newsom> new_6p0 at 72
if isa(p,'cell'),p = cell2mat(p);端==>中的错误新闻报58岁 net = new_6p0(varargin {:});
形成的图像具有不同的尺寸(12x6,15x12等)。
谁能告诉我如何纠正我的方法,以便newsom
获取50个二进制图像的数据?
答案 0 :(得分:1)
要使用newsom
,您需要所有输入都具有相同的大小。您可以使用imresize
n = 50;
sz = [20 20]; this would be the size of ALL inputs
X = cell(1,n); % pre-allocate outputs, this is good practice
Y = cell(1,n);
for cnt = 1:50
rectangle('position',box(:,cnt),'edgecolor','r');
X{cnt}=imcrop(I, box(:,cnt));
newSize = imresize( X{cnt}, sz, 'bicubic' ); % resize to the predefined size
Y{cnt}=im2bw(newSize); % do binarization AFTER resizing!
end