OpenCV - Java:inRange 函数

OpenCV - Java : inRange function

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

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

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

现在我想这样做:

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

而且它不适用于我的区域矩形,我尝试了所有方法,因为 3 小时后我找不到解决方案...

好吧,也许大家不在乎,但经过多次尝试,我找到了答案。

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