Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Mat Camera; //全域Mat 用來暫存影像
- int count = 0; //全域int 用來計數
- //載入相機影像
- public Mat onCameraFrame(CvCameraViewFrame inputFrame) {
- if(count==1){ //設條件將第1幀影像存入Camera (count是0開始,所以應該稱第2幀,但不重要。)
- Camera=inputFrame.gray();
- }
- else if(count%10==9){
- //呼叫影像處理funtion (count%10==9 是為了讓手機處理影像的緩衝時間,
- // 理論上只要大於1 就可以了,但間隔太短程式會當掉。)
- OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_9, this, mLoaderCallback);
- }
- count++;
- return inputFrame.rgba();
- }
- //影像處理funtion
- private BaseLoaderCallback mLoaderCallback = new BaseLoaderCallback(this) {
- @Override
- public void onManagerConnected(int status) {
- switch (status) {
- case LoaderCallbackInterface.SUCCESS: {
- Log.i(TAG, "OpenCV loaded successfully");
- mOpenCvCameraView.enableView();
- //----------------------有關處理影像的成是我都寫在這裡面----------------------
- Draw_Mat(Camera); //這邊我只寫下面這一行,呼叫下面的funtion,將Camera的影像畫到螢幕。
- //----------------------有關處理影像的成是我都寫在這裡面----------------------
- }
- break;
- default: {
- super.onManagerConnected(status);
- }
- break;
- }
- }
- };
- //畫出Mat顯示螢幕
- public void Draw_Mat(Mat input) {
- Bitmap bit = Bitmap.createBitmap(input.cols(), input.rows(), Bitmap.Config.ARGB_8888);
- Utils.matToBitmap(input, bit);
- imgv.setImageBitmap(bit); //imgv是ImageView物件
- input.release();
- }
Advertisement
Add Comment
Please, Sign In to add comment