-1

コイン画像を含む画像があります。コインの形状は、長方形、正方形、円、楕円形などです。コインの上に長方形を描き、コインを背景からセグメント化したいと思います。コインは画像のどこにでもある可能性があるため、長方形の x または y の値を指定することはできません。誰もこれを行う方法を知っていますか?

4

2 に答える 2

1

以下の私の答えは、あなたがすでにコインを識別しており、作業できるきれいなイメージ (バイナリがいいでしょう) を持っていることを前提としています。

coin=load('penny.mat'); %#load matlab's stock image
img=zeros(256,256);
img(65:192,65:192)=coin.P;%# this is an approximation to the sort of image that I think you have

ここに画像の説明を入力

ここで、外接する四角形のサイズを知るために、画像の範囲が必要です。配列は、画像がある場所ではゼロではなく、他の場所ではゼロであるため、次の式は辺の長さを示します。

sideX=sum(sum(img,1)>0);
sideY=sum(sum(img,2)>0);

を使用して画像の重心を見つけますkmeans

[indX,indY]=ind2sub(size(img),find(img(:)>0));
[~,centroid]=kmeans([indX,indY],1);

最後に、長方形を画像の上に重ねます。

imagesc(img);colormap(gray);hold on
rectangle('Position',([centroid,sideX,sideY]-[sideX,sideY,0,0]/2),'EdgeColor','w');hold off

結果:

ここに画像の説明を入力

ノイズの多い画像がある場合 (つまり、画像の外側が均一にゼロではない場合、境界ボックスを見つけるためにしきい値を設定する必要があります)

于 2011-04-07T17:05:14.050 に答える
0

パターン認識に関するMathWorks のアドバイスを読むことから始めます。問題を正確にどのように解決するかは、多くのことに依存します。たとえば、

  • コイン以外に画像には何がありますか?

  • すべてのコインは同じ色ですか、それとも異なる色ですか?

  • コインの位置が特定された画像のトレーニング セットはありますか?

于 2011-04-07T15:34:15.607 に答える