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);
我有我的图像 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);