私はOpenCVとPythonを使って、イメージ内のターゲットパターンを見つけることができるソフトウェアを開発しています。私は現在、目的のターゲットを見つけることに取り組んでおり、その一部はターゲットの色を分離するためにHSV閾値処理を実行しています。 HSVのしきい値のコードは次のようになります。OpenCVのHSV閾値処理は成功すれば何を返すべきですか?
out = cv2.cvtColor(input, cv2.COLOR_RGB2HSV)
return cv2.inRange(out, (hue[0], sat[0], val[0]), (hue[1], sat[1], val[1]))
hue[]
、sat[]
、およびval[]
は、コードの別の場所で定義されており、実験的に私が探しているHSVの範囲の値をチェックし含む配列。このメソッドを実行した後に出力を印刷するprint文を追加しました。
[[0 0 0 ..., 0 0 0]
[0 0 0 ..., 0 0 0]
[0 0 0 ..., 0 0 0]]
が、私は色違いの多くが含まれているバルーンの異なるストックイメージを使用してみました、そして、それは同じことを返しました:私は私のカメラのフレームに、このメソッドを実行すると、これを返します。私は問題がHSVメソッドが正しく動作する場合、返す必要がありますので、私は正確にどのようにこれをデバッグするのか分からないドキュメントを見つける必要があります。
物事が適切に動作しているか、または例がある場合、どのタイプの出力が見られるはずですか?
cv2.inRangeは()ピクセルの配列ではなく、単一の値であるバイナリイメージを返します。したがって、すべての0は、しきい値の後にイメージ内の黒いピクセルに対応します。 imshowを使用して画像をご覧ください。また、「正しく働く」ことをどのように定義しますか? –
[OpenCV color conversion metrics](http://docs.opencv.org/2.4/modules/imgproc/doc/miscellaneous_transformations.html#cvtcolor)を必ず確認してください。手動で閾値処理を行う場合は非常に重要です。 –
色相、彩度、および彩度のout.dタイプ、下限、および上限を指定してください。 –