OpenCV - Java:inRange函数

时间:2015-02-17 20:00:59

标签: java android opencv image-processing

对不起,这是我今天的第二个问题,但我相信有人知道如何回答我的问题。

我有我的图片mRgba,当我这样做时:

Core.inRange(mRgba, B1, B2, mRgba);

我得到了我期望的结果:我的所有RGBA图像都在B1和B2之间进行阈值处理。

现在我想这样做:

Mat roi = mRgba.submat(rect);
Core.inRange(roi, B1, B2, roi);

它不适用于我的区域矩形,我尝试了所有的东西,因为3个小时我找不到解决方案...... 非常坦克,对不起,如果我不清楚,但我的英语有问题......

1 个答案:

答案 0 :(得分:11)

好吧,也许每个人都不在乎,但经过多次尝试,我找到了答案。

Mat roi = new Mat();
roi = mRgba.submat(rect);
Mat roiTmp = roi.clone();

Imgproc.cvtColor(roiTmp, roiTmp, Imgproc.COLOR_RGB2HSV);

Core.inRange(roiTmp, B1, B2, roiTmp);

Imgproc.cvtColor(roiTmp, roi, Imgproc.COLOR_GRAY2BGRA);