コード例 #1
0
ファイル: CameraActivity.java プロジェクト: RamyaNT/MDig
 @Override
 public void onResume() {
   super.onResume();
   mNativeController = CreateNativeController();
   mCameraView.enableView();
   mCameraView.setOnTouchListener(CameraActivity.this);
 }
コード例 #2
0
ファイル: OpenCVActivity.java プロジェクト: prefanatic/TheiaC
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_open_cv);
    ButterKnife.bind(this);

    cameraView.setVisibility(View.VISIBLE);
    cameraView.setCvCameraViewListener(this);
  }
コード例 #3
0
 @Override
 public void onCameraReady() {
   if (initWebServer()) {
     int wid = cameraView_.Width();
     int hei = cameraView_.Height();
     cameraView_.StopPreview();
     cameraView_.setupCamera(wid, hei, previewCb_);
     cameraView_.StartPreview();
   }
 }
コード例 #4
0
 @Override
 public String run(Properties parms) {
   int wid = Integer.parseInt(parms.getProperty("wid"));
   int hei = Integer.parseInt(parms.getProperty("hei"));
   Log.d(TAG, ">>>>>>>run in doSetup wid = " + wid + " hei=" + hei);
   cameraView_.StopPreview();
   cameraView_.setupCamera(wid, hei, previewCb_);
   cameraView_.StartPreview();
   return "OK";
 }
コード例 #5
0
ファイル: OpenCVActivity.java プロジェクト: prefanatic/TheiaC
  @Override
  public void onCameraViewStarted(int width, int height) {
    cameraView.setResolution(cameraView.getResolutionList().get(10));

    // creates a new BackgroundSubtractorMOG class with the arguments

    // creates matrices to hold the different frames
    mRgb = new Mat();
    mFGMask = new Mat();
    mGray = new Mat();

    // arraylist to hold individual contours
    contours = new ArrayList<MatOfPoint>();
  }
コード例 #6
0
ファイル: CameraActivity.java プロジェクト: RamyaNT/MDig
 @Override
 public void onPause() {
   super.onPause();
   if (mCameraView != null) {
     mCameraView.disableView();
   }
 }
コード例 #7
0
 @Override
 protected void cancel() {
   if (photoView != null) {
     photoView.finalise();
     photoView = null;
   }
 }
コード例 #8
0
ファイル: OpenCVActivity.java プロジェクト: prefanatic/TheiaC
 @Override
 protected void onDestroy() {
   super.onDestroy();
   if (cameraView != null) {
     cameraView.disableView();
   }
 }
コード例 #9
0
 public void stopCamera() {
   if (!flagPreviewInitialized) {
     return;
   }
   if (mCamera != null) {
     mPreview.stopCameraPreview();
     mPreview.setCamera(null, null);
     cameraLayout.removeView(mPreview);
     removeView(cameraLayout);
     cameraLayout = null;
     this.cameraInstanceManager.releaseCamera(mCamera);
   }
   if (mCameraHandlerThread != null) {
     mCameraHandlerThread.quit();
     mCameraHandlerThread = null;
   }
   flagPreviewInitialized = false;
 }
コード例 #10
0
  private void initCamera() {
    SurfaceView cameraSurface = (SurfaceView) findViewById(R.id.surface_camera);
    cameraView_ = new CameraView(cameraSurface);
    cameraView_.setCameraReadyCallback(this);

    overlayView_ = (OverlayView) findViewById(R.id.surface_overlay);
    overlayView_.setOnTouchListener(this);
    overlayView_.setUpdateDoneCallback(this);
  }
コード例 #11
0
 private void releaseCamera() {
   Log.d(TAG, "Releasing camera");
   try {
     cameraView.stop();
     camera.release();
   } catch (Exception e) {
     Log.e(TAG, "Error releasing camera", e);
   }
 }
コード例 #12
0
ファイル: CameraActivity.java プロジェクト: RamyaNT/MDig
 public void onDestroy() {
   super.onDestroy();
   if (mCameraView != null) {
     mCameraView.disableView();
   }
   if (mNativeController != 0) {
     DestroyNativeController(mNativeController);
   }
 }
コード例 #13
0
 @Override
 public String run(Properties parms) {
   String ret = "";
   List<Camera.Size> supportSize = cameraView_.getSupportedPreviewSize();
   ret = ret + "" + cameraView_.Width() + "x" + cameraView_.Height() + "|";
   for (int i = 0; i < supportSize.size() - 1; i++) {
     ret = ret + "" + supportSize.get(i).width + "x" + supportSize.get(i).height + "|";
   }
   int i = supportSize.size() - 1;
   ret = ret + "" + supportSize.get(i).width + "x" + supportSize.get(i).height;
   JSONObject obj = new JSONObject();
   try {
     obj.put("camsize", ret);
     obj.put("quality", mQuality);
   } catch (JSONException e) {
     e.printStackTrace();
   }
   return obj.toString();
 }
コード例 #14
0
  private void openCamera() {
    Log.d(TAG, "Opening camera");
    try {

      camera = Camera.open();

      cameraView.start(camera, new QrCodeDecoder(this), 0, true);
    } catch (Exception e) {
      Log.e(TAG, "Error opening camera", e);
    }
  }
コード例 #15
0
        @Override
        public InputStream streaming(Properties parms) {
          VideoFrame targetFrame = null;
          for (int i = 0; i < maxVideoNumber; i++) {
            if (videoFrames[i].acquire()) {
              targetFrame = videoFrames[i];
              break;
            }
          }
          // return 503 internal error
          if (targetFrame == null) {
            Log.d(TAG, "No free videoFrame found!");
            return null;
          }

          // compress yuv to jpeg
          int picWidth = cameraView_.Width();
          int picHeight = cameraView_.Height();
          YuvImage newImage = new YuvImage(preFrame, ImageFormat.NV21, picWidth, picHeight, null);
          targetFrame.reset();
          boolean ret;
          inProcessing = true;
          try {
            ret =
                newImage.compressToJpeg(new Rect(0, 0, picWidth, picHeight), mQuality, targetFrame);
          } catch (Exception ex) {
            ret = false;
          }
          inProcessing = false;

          // compress success, return ok
          if (ret == true) {
            parms.setProperty("mime", "image/jpeg");
            InputStream ins = targetFrame.getInputStream();
            return ins;
          }
          // send 503 error
          targetFrame.release();

          return null;
        }
コード例 #16
0
ファイル: CameraActivity.java プロジェクト: RamyaNT/MDig
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    // Copy necessary resources.
    deployResources();

    // Setup our camera view
    setContentView(R.layout.activity_camera);
    mCameraView = (CameraView) findViewById(R.id.primary_camera_view);
    mCameraView.setVisibility(SurfaceView.VISIBLE);
    mCameraView.setCvCameraViewListener(this);
    mCameraView.setMaxFrameSize(640, 480);
    // mCameraView.enableFpsMeter();

    getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

    if (mNativeController == 0) {
      mNativeController = CreateNativeController();
    }
  }
コード例 #17
0
ファイル: OpenCVActivity.java プロジェクト: prefanatic/TheiaC
        @Override
        public void onManagerConnected(int status) {
          switch (status) {
            case LoaderCallbackInterface.SUCCESS:
              {
                cameraView.enableView();

                cameraView.setOnClickListener(
                    new View.OnClickListener() {
                      @Override
                      public void onClick(View v) {
                        captureBackground = true;
                      }
                    });
              }
              break;
            default:
              {
                super.onManagerConnected(status);
              }
              break;
          }
        }
コード例 #18
0
 @Override
 public String run(Properties parms) {
   int degree = Integer.parseInt(parms.getProperty("degree"));
   Log.d(TAG, ">>>>>>>run in doRotate degree = " + degree);
   cameraView_.StopPreview();
   cameraView_.Rotate(degree);
   cameraView_.setupCamera(cameraView_.Width(), cameraView_.Height(), previewCb_);
   cameraView_.StartPreview();
   return "OK";
 }
コード例 #19
0
  @Override
  protected View getPlatformView(
      boolean onPage, boolean enabled, Record record, boolean newRecord) {
    // TODO take "enabled" into account
    if (onPage) {
      // TODO photo-on-page button
      return null;
    } else {
      if (photoView == null) photoView = new CameraView(collectorUI.getContext());

      // Init/reset the view:
      photoView.update();

      // Return view:
      return photoView;
    }
  }
コード例 #20
0
ファイル: GalleryView.java プロジェクト: arkany/Snapscouts
 // From the OnClickListener
 public void onClick(View v) {
   cameraView.takePicture(null, null, this);
 }
コード例 #21
0
        public void onPreviewFrame(byte[] frame, Camera c) {
          if (!inProcessing) {
            inProcessing = true;

            int picWidth = cameraView_.Width();
            int picHeight = cameraView_.Height();
            ByteBuffer bbuffer = ByteBuffer.wrap(frame);
            try {
              bbuffer.get(preFrame, 0, picWidth * picHeight + picWidth * picHeight / 2);

              int numFilled = 0;

              int y = picHeight / 2;
              for (int i = 0; i < PIN_LENGTH; i++) {
                int x =
                    picWidth / 2 + (int) ((i + 0.5f - PIN_LENGTH / 2) * SYMBOL_SPACING * picWidth);
                int p = 0;
                // Take 4 nearby pixels, to filter out noise
                p += preFrame[picWidth * y + x] & 0xFF;
                p += preFrame[picWidth * y + x + 1] & 0xFF;
                p += preFrame[picWidth * (y + 1) + x] & 0xFF;
                p += preFrame[picWidth * (y + 1) + x + 1] & 0xFF;
                p /= 4;
                pinEntered[i] = (p < BRIGHTNESS_THRESHOLD);

                if (pinEntered[i]) numFilled++;
              }
              overlayView_.invalidate();

              if (System.currentTimeMillis() > delay) {
                delay = System.currentTimeMillis() + SEND_DELAY;

                if (sendEnter && numFilled == 0) {
                  sendEnter = false;
                  currentPin++;
                  runOnUiThread(
                      new Runnable() {
                        public void run() {
                          tvMessage2.setText("PIN: " + currentPin);
                        }
                      });
                }

                if (sendEnter && numFilled == PIN_LENGTH) {
                  final String[] cmd = {
                    "/system/bin/sh",
                    "-c",
                    "echo 'echo enter | "
                        + getFilesDir().getAbsolutePath()
                        + "/hid-gadget-test /dev/hidg0 keyboard' | su"
                  };
                  runOnUiThread(
                      new Runnable() {
                        public void run() {
                          tvMessage2.setText("PIN: " + currentPin + " - sending Enter");
                        }
                      });
                  Runtime.getRuntime().exec(cmd).waitFor();
                }

                if (!sendEnter && numFilled == PIN_LENGTH) {
                  sendEnter = true;
                }

                if (!sendEnter && numFilled < PIN_LENGTH) {
                  final int digit =
                      (currentPin / (int) Math.pow(10, PIN_LENGTH - numFilled - 1)) % 10;
                  final int pos = numFilled + 1;
                  final String[] cmd = {
                    "/system/bin/sh",
                    "-c",
                    "echo 'echo "
                        + digit
                        + " | "
                        + getFilesDir().getAbsolutePath()
                        + "/hid-gadget-test /dev/hidg0 keyboard' | su"
                  };
                  runOnUiThread(
                      new Runnable() {
                        public void run() {
                          tvMessage2.setText(
                              "PIN: "
                                  + String.format("%04d", currentPin)
                                  + " - sending digit #"
                                  + pos
                                  + " : "
                                  + digit);
                        }
                      });
                  Runtime.getRuntime().exec(cmd).waitFor();
                }
              }

            } catch (Exception e) {
              e.printStackTrace();
            }

            inProcessing = false;
          }
        }
コード例 #22
0
 @Override
 public String run(Properties parms) {
   Log.d(TAG, ">>>>>>>run in doAutoFocus");
   cameraView_.AutoFocus();
   return "OK";
 }
コード例 #23
0
ファイル: CameraActivity.java プロジェクト: RamyaNT/MDig
 private void takePicture() {
   File imageFile = makeUniqueImagePath();
   mCameraView.takePicture(imageFile.getPath());
   Toast.makeText(this, "Picture saved as " + imageFile.getName(), Toast.LENGTH_SHORT).show();
   mImagePaths = imageFile.getPath();
 }
コード例 #24
0
 public void stopCameraPreview() {
   if (mPreview != null) {
     mPreview.stopCameraPreview();
   }
 }
コード例 #25
0
 protected void resumeCameraPreview() {
   if (mPreview != null) {
     mPreview.showCameraPreview();
   }
 }
コード例 #26
0
 public void setAutoFocus(boolean state) {
   mAutofocusState = state;
   if (mPreview != null) {
     mPreview.setAutoFocus(state);
   }
 }