1
私はルービックキューブEmguCV色彩認識
のオフ色を検出するためのプログラムを作成しようとしているが、私は、これまで実行しているかのスクリーンショットのthats、私は基本的にエッジ検出の例からコードを使用しましたそれはemguCVと一緒に出荷され、小さなキューブを検出するために使用されます(しかし、小さなキューブのいくつかは検出されませんが、私がここで議論したい問題はありません)。
今、小さなキューブがある場所を発見した後、私は現在、私はそうのように、色を決定するHSV値を使用しています、彼らはどの色を検出します:
if (current_colour.Hue > 120 && current_colour.Hue < 170)
{
Colours[(int)colornames.W]++;
}
else if (current_colour.Hue > (170))
{
Colours[(int)colornames.R]++;
}
else if (current_colour.Hue > 5 && current_colour.Hue < 20)
{
Colours[(int)colornames.O]++;
}
else if (current_colour.Hue > 47 && current_colour.Hue< 60)
{
Colours[(int)colornames.G]++;
}
else if (current_colour.Hue > 15 && current_colour.Hue < 30)
{
Colours[(int)colornames.Y]++;
}
else if (current_colour.Hue > 100 && current_colour.Hue < 110)
{
Colours[(int)colornames.B]++;
}
どこ値について私が試行錯誤して得た各色... Photoshopを使って...私は、(特に白と赤の)混乱している結果を得るImとして、より良い方法があるはずだと確信しています 助けてください?
こんにちは、GetAverageはROIの平均値を生成する平均色または個々のピクセルを生成するために四角形内のすべてのデータを使用していますか?より良い結果を得るには、彩度と値を使用します。理想的な世界では白が(255,255,255)と赤(0,0,255)になるため、Bgrなどの他のイメージタイプを使用して結果を確認することもできます。あなたがしていることが本当に面白い素敵な仕事だと言ってもいいですか?私は助けることができると希望 – Chris
ちょっとクリス、私は単一のピクセルを使用していましたが、私は正方形内の複数の(約9または10)ピクセルの平均を取ることを考えています(自分の関数を書くことによって)GetAverareageは私のためにこれをしなさい(私はそれをgoogledしかし何も見つけなかった)。 – 7VoltCrayon
こんにちは、はいそれはすべてROIを取り、各ピクセルを加算してピクセル数で割ることで、独自の関数を書くのも簡単です。私は、画像のエンコードと圧縮のおかげで騒音はほとんどないので、エッジの近くに黒があると、1つのピクセルでメインエラーが発生することが予想されます。私は四角いセンターを取ってそこから作業することをお勧めします。 Cheers – Chris