Android : OpenCV Turning off camera preview -
i writing augmented reality demo epson bt 200 glasses, have sample have , running if point @ picture, detects , renders cube on top of it.
now fine phone, see thru glasses want work not show camera feed. thought turning off view stop it, or setting visibility gone. still not work.
the work around have found far not setting opengl render transparent pixels
// opencv loader callback. private baseloadercallback mloadercallback = new baseloadercallback(this) { @override public void onmanagerconnected(final int status) { switch (status) { case loadercallbackinterface.success: log.d(tag, "opencv loaded successfully"); mcameraview.enableview(); mcameraview.enablefpsmeter(); mbgr = new mat(); final arfilter starrynight; try { // define starry night 1.0 units tall. starrynight = new imagedetectionfilter( cameraactivity.this, r.drawable.the_lab, mcameraprojectionadapter, 1.0); } catch (ioexception e) { log.e(tag, "failed load drawable: " + "starry_night"); e.printstacktrace(); break; } final arfilter akbarhunting; try { // define akbar hunting cheetahs 1.0 // units wide. akbarhunting = new imagedetectionfilter( cameraactivity.this, r.drawable.akbar_hunting_with_cheetahs, mcameraprojectionadapter, 1.0); } catch (ioexception e) { log.e(tag, "failed load drawable: " + "akbar_hunting_with_cheetahs"); e.printstacktrace(); break; } mimagedetectionfilters = new arfilter[] { //new nonearfilter(), starrynight, akbarhunting }; marrenderer.filter = mimagedetectionfilters[ mimagedetectionfilterindex]; break; default: super.onmanagerconnected(status); break; } } }; // suppress backward incompatibility errors because provide // backward-compatible fallbacks. @suppresslint("newapi") @override protected void oncreate(final bundle savedinstancestate) { gofullscreen(); super.oncreate(savedinstancestate); if (savedinstancestate != null) { mcameraindex = savedinstancestate.getint( state_camera_index, 0); mimagesizeindex = savedinstancestate.getint( state_image_size_index, 0); mimagedetectionfilterindex = savedinstancestate.getint( state_image_detection_filter_index, 0); } else { mcameraindex = 0; mimagesizeindex = camerasize; // 0 mimagedetectionfilterindex = 0; } final framelayout layout = new framelayout(this); layout.setlayoutparams(new framelayout.layoutparams( framelayout.layoutparams.match_parent, framelayout.layoutparams.match_parent)); layout.setbackgroundcolor(color.red); setcontentview(layout); mcameraview = new javacameraview(this, mcameraindex); mcameraview.setlayoutparams(new framelayout.layoutparams( framelayout.layoutparams.match_parent, framelayout.layoutparams.match_parent)); layout.addview(mcameraview); //mcameraview.setvisibility(view.invisible); glsurfaceview glsurfaceview = new glsurfaceview(this); glsurfaceview.getholder().setformat( pixelformat.transparent); glsurfaceview.seteglconfigchooser(8, 8, 8, 8, 0, 0); glsurfaceview.setzorderontop(true); glsurfaceview.setlayoutparams(new framelayout.layoutparams( framelayout.layoutparams.match_parent, framelayout.layoutparams.match_parent)); layout.addview(glsurfaceview); mcameraprojectionadapter = new cameraprojectionadapter(); marrenderer = new arcuberenderer(); marrenderer.cameraprojectionadapter = mcameraprojectionadapter; // earlier, defined printed image's size 1.0 // unit. // define cube half size. marrenderer.scale = 0.5f; glsurfaceview.setrenderer(marrenderer); final camera camera; if (build.version.sdk_int >= build.version_codes.gingerbread) { camerainfo camerainfo = new camerainfo(); camera.getcamerainfo(mcameraindex, camerainfo); miscamerafrontfacing = (camerainfo.facing == camerainfo.camera_facing_front); mnumcameras = camera.getnumberofcameras(); camera = camera.open(mcameraindex); } else { // pre-gingerbread // assume there 1 camera , rear-facing. miscamerafrontfacing = false; mnumcameras = 1; camera = camera.open(); } final parameters parameters = camera.getparameters(); camera.release(); msupportedimagesizes = parameters.getsupportedpreviewsizes(); final size size = msupportedimagesizes.get(mimagesizeindex); mcameraprojectionadapter.setcameraparameters( parameters, size); // earlier, defined printed image's size 1.0 // unit. // leave near , far clip distances @ default // values, 0.1 (one-tenth image size) , // 10.0 (ten times image size). mcameraview.setmaxframesize(size.width, size.height); mcameraview.setcvcameraviewlistener(this); }
Comments
Post a Comment