画像MATLABから色を検出する方法は?

image-processing matlab
画像MATLABから色を検出する方法は?

マットラボベースのロボットプロジェクトを行っています。これは、実際に色に基づいてオブジェクトを並べ替えるので、マットラボを使用してカメラからキャプチャした画像から特定の色を検出するアルゴリズムが必要です。 誰かが私を助けてくれればとても助かります。http://www.youtube.com/watch?v = 23FpKdgqLxs [そのプロジェクトのビデオ]

  1  0


ベストアンサー

アムロの回答に応えて:

image:https://i.stack.imgur.com/dGTb8.png [同じ色相値を持つが視覚的に異なる色を持つ5つの正方形]

上記の5つの正方形はすべて、HSV空間で同じ色相値を持ちます。 Hueによる選択は役立ちますが、彩度と値にもいくつかの制約を課す必要があります。

HSVを使用すると、色をより人間的に意味のある方法で記述することができますが、それでも3つの値すべてを調べる必要があります。

3


おそらくHSVカラースペースに変換し、Hue値に基づいて色を検出する必要があります。 MATLABは、http://www.mathworks.com/help/techdoc/ref/rgb2hsv.html [RGB2HSV]関数を提供します。

これは、http://www.mathworks.com/matlabcentral/fileexchange/28512 [例] File Exchangeへの投稿で、色相に基づいた色の検出を示しています。

1


出発点として、RGBスペースとユークリッドノルムを使用して、ピクセルに特定の色があるかどうかを検出します。 通常、1つのピクセルには次の3つの値があります: [red green blue]。 また、ターゲット色を定義する3つの値もあります。赤の場合は `[255 0 0]`です。 これら2つのベクトル間のユークリッドノルムを計算し、決定しきい値を適用してピクセルの色を分類します。

最終的に、ルミナンス係数を取り除く必要があります(つまり、明るい赤ですか、それとも暗い赤ですか?)。 HSV空間に切り替えて、H値に同じ基準を使用できます。 または、 `[red / green blue / green]`ベクトルを使用できます。 その前に、除算(hsv2rgb変換にも存在する)がノイズを増加させる傾向があるため、画像にローパスフィルターを適用します。

1


単一のカラーマスクを取得するには、まずrgb2grayを使用してRGBイメージをグレーに変換します。 また、rgbイメージから目的のカラープレーンを抽出します(たとえば、赤のプレーンを取得するにはrgb_img(:、:、1)を指定します)。 グレー画像から指定された平面を減算します…​…​..

0


タイトルとURLをコピーしました