我想通过“setTo()”将两个面具合并在一起。但我得到一个错误,我不知道为什么。
_第一个掩码是输入视频帧(RGBA实际上是inRange的黑白原因) _ 第二个面具是一个简单的黄色面具(我认为必须是8UC4)
Imgproc.cvtColor(rgba, rgba, Imgproc.COLOR_RGB2HSV, 0);
Core.inRange(rgba, new Scalar(10,100,100), new Scalar(30,255,255), rgba);
Imgproc.cvtColor(rgba, rgba, Imgproc.COLOR_GRAY2RGBA, 4);
Mat yellow_mask = new Mat(cols, rows, CvType.CV_8UC4, new Scalar(255,255,0, 100));
rgba.setTo(yellow_mask, rgba);
我的目标是将白色inRange变成黄色。
编辑1
// DETECT YELLOW
Mat hsv = new Mat();
Imgproc.cvtColor(rgba, hsv, Imgproc.COLOR_RGB2HSV);
Mat mask = new Mat();
Core.inRange(hsv, new Scalar(10,100,100), new Scalar(30,255,255), mask);
rgba.setTo(new Scalar(255,255,0, 100), mask);
发布后每15次检测到崩溃:/
答案 0 :(得分:1)
所以试试这样:
Mat hsv = new Mat();
Imgproc.cvtColor(rgba, hsv, Imgproc.COLOR_RGBA2HSV);
Mat mask = new Mat();
Core.inRange(hsv, new Scalar(10,100,100), new Scalar(30,255,255), mask);
rgba.setTo(new Scalar(255,255,0, 100), mask);