2017-02-09 5 views
0

私は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メソッドが正しく動作する場合、返す必要がありますので、私は正確にどのようにこれをデバッグするのか分からないドキュメントを見つける必要があります。

物事が適切に動作しているか、または例がある場合、どのタイプの出力が見られるはずですか?

+0

cv2.inRangeは()ピクセルの配列ではなく、単一の値であるバイナリイメージを返します。したがって、すべての0は、しきい値の後にイメージ内の黒いピクセルに対応します。 imshowを使用して画像をご覧ください。また、「正しく働く」ことをどのように定義しますか? –

+0

[OpenCV color conversion metrics](http://docs.opencv.org/2.4/modules/imgproc/doc/miscellaneous_transformations.html#cvtcolor)を必ず確認してください。手動で閾値処理を行う場合は非常に重要です。 –

+0

色相、彩度、および彩度のout.dタイプ、下限、および上限を指定してください。 –

答えて

0

私はこれを解決しました。誰でも似たような質問があり、後でそれを検索する場合に備えたいと思います。

IPカメラ、GRIPディスプレイウィンドウ、OpenCVイメージ用の私のWebビューアが少し異なっていたので、イメージをウィンドウに印刷すると非常に助けになりました。したがって、GRIPから得たスレッシュホールド番号は機能しませんでしたまったく、黒い画像しか返しませんでした。

ここではウィンドウに自分の画像を印刷し、あなたが作業しているかを確認する方法は次のとおりです。

cv2.imshow('image', img) #img is your image, 'image' is the name of the window you'll create 
cv2.waitKey(0) #handles GUI elements, and causes the window to close when you press any key 
cv2.destroyAllWindows() 
関連する問題