首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在android opencv中将遮罩应用于实时摄像头

如何在android opencv中将遮罩应用于实时摄像头
EN

Stack Overflow用户
提问于 2017-09-02 23:24:49
回答 1查看 735关注 0票数 2

我在获取口罩(即imgThresholded )后,使用Core.inRange从实时摄像头源中检测到蓝色。当我使用bitwise_and时,它显示重叠的帧,如何才能只获得一帧?Frames are ovelaping for the detected object

以下是我的代码:

代码语言:javascript
复制
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;
}
EN

回答 1

Stack Overflow用户

发布于 2017-09-08 21:30:45

看起来,这是因为您没有清除tempImg Mat并多次使用“旧”内容。尝试向onCameraFrame()添加tempImg.setTo(new Scalar(0,0,0,255))。大概是这样的:

代码语言:javascript
复制
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;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46015299

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档