게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
[ㅄㄱ] 도움!! openCV 안드로이드에서 자꾸 흑백으로 나오네요 ㅠㅠ
게시물ID : programmer_7761짧은주소 복사하기
작성자 : 빙티
추천 : 0
조회수 : 1801회
댓글수 : 3개
등록시간 : 2015/01/21 21:56:53
옵션
  • 본인삭제금지
안녕하세요!
반도의 흔한 예비고2입니다!!!

오유 여려분들의 여러 도움 덕분에
결국 opencv의 예제인 face-detection을 빌드하는데 까진 성공했습니다!!!

이제 내가 새로 프로젝트를 만들어 봐야지! 라고 생각하고 코딩을 했습니다.
안드로이드 왕초보라 모든 구현부는 MainActivity.java에만 하였습니다!!

코드는 아래와 같습니다 (카메라 뷰가 시작되는 71번째 줄 부터 보시면 됩니다)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
package com.example.opencvfrontcamera;
 
import org.opencv.android.BaseLoaderCallback;
import org.opencv.android.CameraBridgeViewBase;
import org.opencv.android.LoaderCallbackInterface;
import org.opencv.android.CameraBridgeViewBase.CvCameraViewListener;
import org.opencv.android.OpenCVLoader;
import org.opencv.core.Core;
import org.opencv.core.CvType;
import org.opencv.core.Mat;
import org.opencv.core.Size;
import org.opencv.highgui.Highgui;
import org.opencv.imgproc.Imgproc;
 
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.WindowManager;
 
public class MainActivity extends Activity implements CvCameraViewListener {
    
    private CameraBridgeViewBase mOpenCvCameraView;
    private Mat mImage;
    
    private BaseLoaderCallback mLoaderCallback = new BaseLoaderCallback(this) {
        @Override
        public void onManagerConnected(int status) {
            
            switch (status) {
            
            case LoaderCallbackInterface.SUCCESS :
            {
                mOpenCvCameraView.enableView();
                mOpenCvCameraView.SetCaptureFormat(Highgui.CV_CAP_ANDROID_GREY_FRAME);
            }break;
            
            default :
            {
                super.onManagerConnected(status);
            }break;
            
            }
        }
    };
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
        
        mOpenCvCameraView = (CameraBridgeViewBase) findViewById(R.id.NativeCameraView1);
        mOpenCvCameraView.setCameraIndex(1);
        mOpenCvCameraView.setCvCameraViewListener(this);
    }
    
    @Override
    protected void onResume () {
        super.onResume();
        
        OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_9, this, mLoaderCallback);
    }
    
    @Override
    protected void onPause () {
        
    }
 
    @Override
    public void onCameraViewStarted(int width, int height) {
        // TODO Auto-generated method stub
        mImage = new Mat(new Size(width,height), CvType.CV_8UC4);
    }
 
    @Override
    public void onCameraViewStopped() {
        // TODO Auto-generated method stub
        mImage.release();
    }
 
    @Override
    public Mat onCameraFrame(Mat inputFrame) {
        // TODO Auto-generated method stub
        Core.flip(inputFrame, mImage, 1);
        return mImage;
    }
}
 
cs

여기서 71번째 줄부터 맨 끝 줄까지의 모든 코드의 레퍼런스를 뒤져보았는데요...
CV_8UC4도 RGBA를 담고있다고 하고.....
flip도 좌우반전만 시키는건데.... 도데체 왜!!!!! 어디에서 흑백이 나오는지 모르겠습니다 ㅠㅠㅠㅠㅠㅠ

도와주시면 감사드리겠습니다!!!


꼬릿말 보기
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호