2015-02-17 188 views
3

对不起,这是我今天的第二个问题,但我相信有人知道如何回答我的问题。OpenCV - Java:inRange函数

我有我的形象mRgba,当我做到这一点:

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

我有我所期望的结果是:我所有的RGBA图像B1和B2之间的阈值处理。

现在,我想这样做:

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

而且这不是我区矩形申请,我尝试一切,已有3小时,我无法找到一个解决方案... 坦克你非常多,对不起,如果我不清楚,但我有一些英语问题...

+0

我接受C++代码或任何东西,只是一个解释... – Bidonjour 2015-02-17 22:11:35

回答

7

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

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);