2017-07-13 3 views
0

トランプの画像のセットでスーツ(ダイヤモンド、クラブなど)の数をカウントする必要があるタスクがあります。私はMatlabのimcropを使って、たとえばオリジナルの画像からテンプレート用のサブ画像を作成しました。オリジナル画像もターゲット画像もグレースケールで変換しました。 私は、ターゲットイメージ内のサブイメージの一致を見つけようとしており、ターゲットイメージ内の対応するダイヤモンドを数えます。Matlabの画像内で一致するオブジェクトの数をカウントするには

誰かに提案がありますか?

私はnormxcorr2を使用しようとしています。最高のピークを持つ領域を見ることができるプロットがありますが、これを計算する方法はありません。

アルゴリズムの提案。

ありがとうございます。

答えて

0

Detect repetitive pixel patterns in an image and remove them using matlabの方法Aを見てください(免責事項:私は著者です)rect行を削除し、変数templateを(BW)テンプレートに置き換えます。最後の3つのコマンドをスキップし、代わりにそこにあるどのように多くのピークカウント:

idx = bwmorph(idx,'shrink',inf); 
numberOfObjects = sum(idx) 

あなたは明らかに良い結果を得るために非常にいくつかの値を調整する必要があります - パターン検出は容易ではありません。

+0

こんにちは、私は "最後の3つのコマンドをスキップ"と言ったとき、私は、拡張、複製、およびfillmissing機能をスキップしなければならないということですか?私はそれがうまくいくと思われるコードを試しましたが、私は仕事場で出力を得ていません。 "s = fprintf( 'nダイヤモンドの総数:%f'、num2str(numberOfDiamonds));"私は価値の長いループを持っています。どんな勧告? – steve

+0

'repmat'行の後に*をすべてスキップしてください。 's = fprintf()'はバイト数の場合だけ取得します。それをコンソールに表示するには、 'fprintf( '%d \ n'、numberOfDiamonds)の総数が' 'それを行うべきです。それ以外の場合は、 'fprintf'ドキュメントを参照してファイルへの書き込み方法の例を参照してください。 –

関連する問題