OpenCV - Java:inRange函数

Bid*_*our 6 java android opencv image-processing

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

我有我的形象mRgba,当我这样做时:

Core.inRange(mRgba, B1, B2, mRgba);
Run Code Online (Sandbox Code Playgroud)

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

现在我想这样做:

Mat roi = mRgba.submat(rect);
Core.inRange(roi, B1, B2, roi);
Run Code Online (Sandbox Code Playgroud)

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

Bid*_*our 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);
Run Code Online (Sandbox Code Playgroud)