-1

UnrealCV を使用して Unreal Engine からマスク イメージと RGB イメージを取得しています。ここではマスク画像からUnrealCVを使ってオブジェクトの色情報(R,G,B)も取得しています。ここで、この RGB 情報を OpenCV に渡してしきい値処理を行う方法を知りたいと思います。

私は今、マスク画像をグレースケール画像に変換してから、しきい値処理を行っています。しかし、私はこれをしたくありません。私はこの回答を確認しましたが、ここでは画像範囲が使用されていますが、これもやりたくありません。マスク画像のように、すべてのオブジェクトには独自の色情報があるため、マスク画像から目的のオブジェクトの RGB 情報を送信してより具体的にし、OpenCV に色のしきい値処理を行うように指示したいだけです。 OpenCV しきい値関数に送信されます。

RGB 情報を取得するために使用されるコードは --

get_mask_color= client.request('vget /object/object_name/color')

マスクの色を指定してから、しきい値処理のために OpenCV に渡したいと思います。

グレースケール画像で現在行っているのと同じようにしきい値処理を行い、しきい値処理された画像を使用して輪郭操作を行うことを期待しています。

4

1 に答える 1

0

グレースケール画像では、しきい値処理によって暗いピクセルと明るいピクセルが分離されます。つまり、グレー範囲が 2 つのサブインターバルに分割されます。これは、対象のオブジェクトが最も明るい (または最も暗い) 色で構成されているという (素朴な) 前提に基づいています。

もう少し論理的なアプローチは、2 つのしきい値 (平均色 ± 最大変動) によって定義されるサブインターバル内のピクセル値を考慮することです。対象のオブジェクトにいくつかの異なる色がある場合、それぞれがグレー値の間隔に対応し、これらは重複するかどうかに関係なく発生します。実際には、シーン内の他の多くのフィーチャが同じグレー レベルを持つ可能性があるため、これはうまく機能しません。

色の場合はもっと複雑です。均一な色は RGB 空間の 1 つの点を定義し、バリエーションを考慮すると、特定の形状を持つボリューム全体が観察されます。運が良ければ、形状はコンパクトな楕円体です。シェーディングおよび/またはシャドウ効果がある場合、形状は円錐のようになり、より拡張されます。

繰り返しになりますが、オブジェクトが複数の色で構成されている場合、ボリュームはいくつかの重なり合った形状または孤立した形状で構成されます。

特定のアプリケーションを処理するには、オブジェクトに対応する RGB クラウドの形状を理解し、適切な幾何学的記述を見つける必要があります。最初の近似として、指定された中心と範囲を持つ立方体または球体を使用できます。

于 2019-06-06T12:20:39.110 に答える