如何在Android上使用蒙版照相机opencv
问题描述:
我在使用Core.inRange获取蒙版后,通过使用Core.inRange检测蓝色,即imgThresholded当我把bitwise_and显示为重叠帧时,我怎样才能得到只有一个框架? 如何在Android上使用蒙版照相机opencv
这里是我的代码:
public Mat onCameraFrame(CameraBridgeViewBase.CvCameraViewFrame inputFrame) {
Imgproc.cvtColor(inputFrame.rgba(),imgHSV,Imgproc.COLOR_RGB2HSV);
Core.inRange(imgHSV,new Scalar(100, 100, 100), new Scalar(120, 255,
255),imgThresholded); // Blue Color
Core.bitwise_and(inputFrame.rgba(),inputFrame.rgba(),tempImg,imgThresholded);
return tempImg;
}
答
看来,那是因为你没有明确tempImg
Mat
和使用“旧”的内容很多次。尝试将tempImg.setTo(new Scalar(0,0,0,255))
添加到onCameraFrame()
。类似的东西:
public Mat onCameraFrame(CameraBridgeViewBase.CvCameraViewFrame inputFrame) {
tempImg.setTo(new Scalar(0,0,0,255));
Imgproc.cvtColor(inputFrame.rgba(),imgHSV,Imgproc.COLOR_RGB2HSV);
Core.inRange(imgHSV,new Scalar(100, 100, 100), new Scalar(120, 255,
255),imgThresholded); // Blue Color
Core.bitwise_and(inputFrame.rgba(),inputFrame.rgba(),tempImg,imgThresholded);
return tempImg;
}