0

Matlab 関数をスタンドアロン アプリケーションに変換する必要があります。Matlab ビルド ツールを使用してビルドしますが、その部分は問題ありません。ただし、Matlab で問題なく動作する場合でも、スタンドアロン プログラムの実行中に dimagree エラーが発生します。ここで間違っていると思われるコード:

% INITIALISATIONS
% find connected components
cc = bwconncomp(bw);
% find areas and centroids
stats = regionprops(cc, 'Area','Centroid');
% keep only the particles in the right dimensions
all_areas = cat(1, stats(:).Area);
idx = zeros(size(all_areas));
fprintf('\nSize all_areas : %d %d \n',size(all_areas,1), size(all_areas,2));
fprintf('\nSize idx : %d %d \n',size(idx,1), size(idx,2));
fprintf('\nProgram paused. Press enter to continue.\n');
pause;
idx = all_areas > minArea & all_areas < maxArea;

上記のコードの最後の行にエラーが表示されます。私は得る:

??? Error using lt
Matrix dimensions must agree.
Error in ==> stats at 46
Error in ==> statPart at 83
MATLAB:dimagree

ご覧のとおり、idx を zeros() で初期化しようとしました。idx と all_areas のサイズを出力しました。プログラムを実行すると、それらは同じです。ここで本当に助けが必要です...

[編集]

statPart 関数の入力を処理するために使用するコードは次のとおりです。

function [BW2,stat] = statPart(varargin)
i = 1; 
while i<=length(varargin), 
    argok = 1; 
    if ischar(varargin{i}), 
        switch varargin{i}, 
            % argument IDs
            case 'minArea', i = i+1; minArea = varargin{i};
            case 'maxArea', i = i+1; maxArea = varargin{i}; 
            case 'subImgSize', i = i+1; subImgSize = varargin{i};
            case 'image', i = i+1; Igray = varargin{i};
            otherwise argok = 0; 
        end
    else
        argok = 0; 
    end
    if ~argok, 
        disp(['(statPart) Argument invalide ignore #' num2str(i+1)]); 
    end
    i = i+1; 
end

ありがとうございました!

4

1 に答える 1

1

ltエラー メッセージは、この行の (より小さい比較) で問題が発生したことを示しています。

idx = all_areas > minArea & all_areas < maxArea;

minAreamaxAreaは同じ次元ではないため all_areasです。それらは ofsize(all_areas)またはスカラーでなければなりませんが、そうではありません。

あなたの小切手からminAreamaxAreaare [50 48 48]、これは「200」に相当するASCIIです。これらはコマンド ラインから文字列として受信されstr2num、値を処理する前に を使用して数値に変換する必要があります。
ただし、入力文字列「2」および「20000」と等しくない理由がわかりません。入力パラメータをどのように解析していますか? そこから問題を探し始めるのは良いことですが、追加情報がなければ、これ以上お手伝いすることはできません。

disPartまた、 を呼び出すコメントで言及していますstatPart。とは何ですか?disPartとの関係は何statPartですか?

于 2012-09-12T14:55:32.880 に答える