0

我已经拍摄了带有字符的扫描图像,裁剪了字符并将它们存储在矩阵中。

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创建自组织地图。但我得到错误:

净=newsom(Y', [10,1])
??? 错误使用 ==> cat
CAT 参数尺寸不一致。

==> cell2mat 在 89
m{n} = cat(1,c{:,n}) 处出错;


如果 isa(p,'cell'), p = cell2mat(p); 则==> newsom>new_6p0 在 72 处出错;结尾

==> newsom 在 58 处出现错误
net = new_6p0(varargin{:});

形成的图像具有不同的尺寸(12x6、15x12 等)。谁能告诉我如何纠正我的方法以newsom获得 50 个二进制图像的数据?

4

1 回答 1

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
于 2013-04-12T11:17:15.033 回答