Quantcast
Channel: OpenCV Q&A Forum - RSS feed
Viewing all articles
Browse latest Browse all 1117

HSV values in openCV

$
0
0
Hi, I've tried to isolate yellow-orange-ish color from an image, using inRange function. I've used an online color picker (https://pinetools.com/image-color-picker) and than tried to isolate by the values it gave me - even with half of Hue value. but it failed. The Hue value that the picker gave me is 30 (tried half - also incorrect) The true value is around 120 - I know this because I've started to 'play' with the value, until I get the desired result. for future reference, What is wrong here ? The online picker ? code : public void colorMask(View view) { //Image Input : Bitmap one = drawableToBitmap(getResources().getDrawable(R.drawable.dsc_1250, this.getTheme())); Mat img1 = new Mat(); Utils.bitmapToMat(one, img1, true);// moving one to img1 Mat structure. //one.recycle(); //Undefined behaviour .. System.gc(); // downsize the image. Mat pyrDown = new Mat(); Imgproc.resize(img1, pyrDown, new Size(img1.cols() / 4, img1.rows() / 4)); img1.release(); Mat hsvImg = new Mat(); cvtColor(pyrDown, hsvImg, COLOR_BGR2HSV); Mat yellowMask = new Mat(); Mat greenMask = new Mat(); inRange(hsvImg, new Scalar(100, 41, 40), new Scalar(130, 255, 255), yellowMask ); // try Mat res = new Mat(); Mat NotYellowMask= new Mat(); bitwise_not(greenMask, NotYellowMask); pyrDown.copyTo(res, yellowMask ); Bitmap imageMatched =Bitmap.createBitmap(res.cols(), res.rows(), Bitmap.Config.RGB_565); Utils.matToBitmap(res, imageMatched); imageViewMy.setImageBitmap(imageMatched); }

Viewing all articles
Browse latest Browse all 1117