2016-04-08 15 views
0

Kullanmak istediğim bazı kodları çözmeyi deniyorum ama kod kalibrasyon gerektiriyor ancak HSV veya RGB kullanıp kullanmama konusunda kafam karışık mı? Noob sorusu için özür dilerim ama OpenCV'ye fazla aşina değilim. Ben alt ve üst sınırları değiştirmek zorunda ama RGB değerleri veya HSV değerleri kullanmak gerektiğini biliyorumOpenCV Java RGB veya 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); 

: İşte kod snippet'idir? Teşekkürler!

cevap

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

Bu hat matHSV değerleri HSV renk sisteminde olduğu güvence altına alır. Dolayısıyla, şimdi tüm değerler HSV'de göz önüne alındığında, matHSV'daki herhangi bir işlem yapılmalıdır. Yani, bu satırda:

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

LOWER_BOUNDS ve UPPER_BOUNDS HSV değerler olmalıdır.

+0

Üst ve alt sınırlar şimdi H-S-V düzenindeki değerler olmalı? Sadece kontrol ediyorum çünkü bunun RGB – Axton

+0

Evet H-S-V siparişi için ters çevrildiğini biliyorum. RGB için aslında sayılmaz. RGB'den tamamen farklı bir renk sistemi olan BGR'dir (pratikte aynıdır fakat teorik olarak farklı sistemlerdir) –

+1

Aslında bgr hakkındaki ifadeniz yanlış görünüyor ...; D Bkz. [burada] (http://www.learnopencv.com/why-does-opencv-use-bgr-color-format/) – Miki