2011-02-04 40 views
0

「ライセンスプレート相関」のMATLABで最終プロジェクトを行っています。今のところ、ユーザーはROI機能を備えたプレートを選択します。その後、プレートのみを取得します。これどうやってするの?MATLABで画像の一部を取得

答えて

1

ROI機能を使用した後は、ハンドルにgetPositionを使用します。これはベクトル[x_min y_min width height]を与えます。これを使用して、サブ画像を取得することができます。

imshow(I,[]) 
h = imrect; 
cord = getPosition(h); 
Sub_I = I(cord(2):cord(2)+cord(4),cord(1):cord(1)+cord(3)); 
+0

ご回答いただきありがとうございますが、このエラーが発生しました: "警告:インデックスとして を使用した場合、コロン演算子には整数オペランドが必要です"という意味は分かりますか?この行が何をするのかというもう一つの質問Sub_I = I(コード(2):コード(2)+コード(4)、コード(1):コード(1)+コード(3) –

+0

私はあなたが整数であるように 'code'の値を四捨五入する必要があると思います。 – gnovice

+0

@michael:[ROUND](http://www.mathworks.com/help/techdoc/ref/round.html)、[CEIL](http://www.mathworks.com/help/)などの関数を使用できます。 techdoc/ref/ceil.html)、[フロア](http://www.mathworks.com/help/techdoc/ref/floor.html)、[FIX](http://www.mathworks.com/help /techdoc/ref/fix.html)。これは、画像をピクセルインデックスに対してプロットしたものです(つまり、x軸は1からsize(img、2)に、y軸は1からsize(img、1)になります)。 – gnovice

0

具体的にしてください。イメージを読み込みたい場合は、m行n列の配列を返すimread(filename、format)関数を使うことができます。画像のフォーマットに応じて3次元があります。次に、この配列を必要に応じてサブセット化できます。

詳細は、以下を参照してくださいhttp://www.mathworks.com/help/techdoc/ref/imread.html

+0

私はすでにimreadを使用していますが、今後の作業のためにROIのみを取得するオプションがあるかどうか知りたいのですか? –