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

ここで、ボックスは長方形の座標を持っています。newsomY を入力として使用して、自己組織化マップを作成したいと考えています。しかし、私はエラーが発生します:

net=newsom(Y', [10,1])
??? ==> cat の使用エラー
CAT 引数の次元に一貫性がありません。

==> cell2mat のエラー
m{n} = cat(1,c{:,n});

==> newsom>new_6p0 のエラー
if isa(p,'cell'), p = cell2mat(p); 終わり

エラー ==> newsom at 58
net = new_6p0(varargin{:});

形成される画像のサイズは異なります (12x6、15x12 など)。newsom50個のバイナリ画像のデータを取得するようにアプローチを修正する方法を教えてもらえますか?

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 に答える