Android OpenCV 颜色识别

 

先把图片转成hsv模式,然后再判断。

inRange 这个方法,判断输入的mat每个像素是否在范围内,如果在就返回白色,不在返回黑色,最后会输出一个黑白的mat图片。

 

        int iLowH = 78;
        int iHighH = 99;

        int iLowS = 43;
        int iHighS = 255;

        int iLowV = 46;
        int iHighV = 255;


        Mat m = new Mat();
        Utils.bitmapToMat(bitmap_src, m);

        Mat hsv=new Mat();
        //android上的是RGBA,所以先转成BGR
        Imgproc.cvtColor(m,hsv,Imgproc.COLOR_RGBA2BGR);
        Imgproc.cvtColor(hsv,hsv,Imgproc.COLOR_BGR2HSV);

        Mat r=new Mat();
        Core.inRange(hsv, new Scalar(iLowH, iLowS, iLowV), new Scalar(iHighH, iHighS, iHighV),r);

 

参照表

 

绿

hmin

0

0

0

0

156

11

26

35

78

100

125

hmax

180

180

180

10

180

25

34

77

99

124

155

smin

0

0

0

43

43

43

43

43

43

43

smax

255

43

30

255

255

255

255

255

255

255

vmin

0

46

221

46

46

46

46

46

46

46

vmax

46

220

255

255

255

255

255

255

255

255

你可能感兴趣的:(Android,OpenCV)