ANDROID - color detection using openCV - how to?

前端 未结 4 1293
谎友^
谎友^ 2021-01-31 12:56

my goal is to display a threshed image using the HSV color space in a way that only yellow objects will be shown. i use this code (based on a code given by the openCV 2.3.1 andr

4条回答
  •  南方客
    南方客 (楼主)
    2021-01-31 13:16

    friends. i give you the result of 1 month of hard work and help from friends across the ocean: enter image description here

    Ethan was right. but the code needed some fixing.

    the code:

        capture.retrieve(mRgba, Highgui.CV_CAP_ANDROID_COLOR_FRAME_BGRA);
        Imgproc.cvtColor(mRgba, mHSV, Imgproc.COLOR_BGR2HSV,3);
        Core.inRange(mHSV, new Scalar(0, 100, 30), new Scalar(5, 255, 255), mHSVThreshed);
        Imgproc.cvtColor(mHSVThreshed, mRgba, Imgproc.COLOR_GRAY2BGR, 0);
        Imgproc.cvtColor(mRgba, mRgba2, Imgproc.COLOR_BGR2RGBA, 0);
        Bitmap bmp = Bitmap.createBitmap(mRgba2.cols(), mRgba2.rows(), Bitmap.Config.ARGB_8888);
    
    
        if (Utils.matToBitmap(mRgba2, bmp))...
    

    first, the mat is binary 0 or 255 so the transform to gray level is more "natural". second, the conversion from HSVto RGBis in fact HSV-BGR!!. and last thing is that the preview is expecting RGBA Bitmap.

    thats it. hope other can benefit from this post. SHALOM!

提交回复
热议问题