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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值