2016-04-08 17 views
0

私は使用したいコードを解読しようとしていますが、コードはキャリブレーションが必要ですが、HSVかRGBのどちらを使用するのか混乱していますか? 申し訳ありませんが、私はOpenCVに精通していません。ここ は、コードの抜粋です:OpenCV Java RGBまたはHSV?

Imgproc.cvtColor(matOriginal,matHSV,Imgproc.COLOR_BGR2HSV);   
     Core.inRange(matHSV, LOWER_BOUNDS, UPPER_BOUNDS, matThresh); 
     Imgproc.findContours(matThresh, contours, matHeirarchy, Imgproc.RETR_EXTERNAL, 
     Imgproc.CHAIN_APPROX_SIMPLE); 

私は下限と上限を変更する必要がありますが、私はRGB値やHSV値を使用する必要があります知っていますか? ありがとう!

答えて

1
Imgproc.cvtColor(matOriginal,matHSV,Imgproc.COLOR_BGR2HSV); 

この行は、matHSVの値がHSV表色系であることを保証します。したがって、今からすべての値がHSVであることを考慮して、matHSV上の操作を行う必要があります。だから、この行に:

Core.inRange(matHSV, LOWER_BOUNDS, UPPER_BOUNDS, matThresh); 

LOWER_BOUNDSUPPER_BOUNDS HSV値でなければなりません。

+0

ここで、上限と下限はH-S-Vオーダーの値ですか?私はそれがRGBのために反転されていることを知っているのでちょうどチェック – Axton

+0

はいH - S - Vの順序。 RGBの場合、実際には反転されません。それはRGBから完全に異なる色のシステムであるBGRです(実際には同じですが、理論的には異なるシステムです) –

+1

実際、bgrに関するあなたの声明は間違っているようです。 [here](http://www.learnopencv.com/why-does-opencv-use-bgr-color-format/) – Miki

関連する問題