Ask Your Question

Problem in using K-means clustering an image using Java

asked 2014-03-10 02:05:45 -0500

shinning91 gravatar image

updated 2014-03-10 03:19:34 -0500

Hi, I am currently trying to develop an Android app. I have tried to convert an image of a leaf from RBG to HSV to produce an image which is in saturation-value space (without hue). Next, I tried to use K-means to produce a image which suppose to look like this:

image description

However, I have no idea where to continue after I uses the K-means function in OpenCV. How do I display the results after K-means?

        Imgproc.cvtColor(rgba, mHSV, Imgproc.COLOR_RGBA2RGB,3);
        Imgproc.cvtColor(rgba, mHSV, Imgproc.COLOR_RGB2HSV,3);
        List<Mat> hsv_planes = new ArrayList<Mat>(3);
        Core.split(mHSV, hsv_planes);

        Mat channel = hsv_planes.get(2);
        channel = Mat.zeros(mHSV.rows(),mHSV.cols(),CvType.CV_8UC1);

        Mat clusteredHSV = new Mat();
        mHSV.convertTo(mHSV, CvType.CV_32FC3);
        TermCriteria criteria = new TermCriteria(TermCriteria.EPS + TermCriteria.MAX_ITER,100,0.1);
        Core.kmeans(mHSV, 2, clusteredHSV, criteria, 10, Core.KMEANS_PP_CENTERS);

Below is the result I currently get:

image description

edit retag flag offensive close merge delete

1 answer

Sort by ยป oldest newest most voted

answered 2014-04-28 03:57:10 -0500

Stegger gravatar image


Not really an answer, but is your result just the mHSV file "printed out"?

edit flag offensive delete link more

Question Tools


Asked: 2014-03-10 02:05:45 -0500

Seen: 2,660 times

Last updated: Apr 28 '14