게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
본삭금] opencv 안드로이드 카메라 assertion failed??
게시물ID : programmer_9741짧은주소 복사하기
작성자 : 빙티
추천 : 0
조회수 : 1164회
댓글수 : 6개
등록시간 : 2015/05/05 22:41:50
옵션
  • 본인삭제금지
AssertionFailed.PNG

안녕하세요! 반도의 흔한 고2 학생입니다!!!!
OpenCV로 안드로이드 앱을 만들고 있는데요.....

제가 원하는것은 isFaceVisible == false가 되면
Camera에서부터 얻은 Mat를 1x1 크기로 줄이고
그 1x1 크기의 mat을 담은 1x1 크기의 카메라뷰가 출력되게끔 하려고 합니다...

그런데 위의 로그를 보니 Mat의 크기와, bitmap의 크기가 다르기 때문에 assertion failed 에러가 발생하는 것 같습니다...
그런데 제가 쓰는 NativeCameraView에서 비트맵의 크기를 조절하려면 어떻게 해야 하는지 잘 모르겠습니다 ㅠㅠㅠㅠ

어떻게 해야 할까요???? ㅠㅠㅠㅠ
답변해 주시면 정말정말정말정말 감사드리겠습니다!! 싸랑합니다 ㅠㅠㅠ



아래에는 관련 액션들만 모았습니다...



private LayoutInflater li;
private RelativeLayout mPopupView;
//항상 보이게할 뷰(nativecam_view.xml의 레이아웃)

private CameraBridgeViewBase mOpenCvCameraView;
//mPopupView 안의 카메라뷰 (NativeCameraView1)

private WindowManager.LayoutParams mParams; //뷰의 위치 및 크기
private WindowManager mWindowManager;

.........................
               // BaseLoaderCallback 에서...
               mOpenCvCameraView.setCameraIndex(1);
               mOpenCvCameraView.setMaxFrameSize(768,512);// TODO : 최대 크기 지정 (1280,720)6fps  (768,512)12fps
               mOpenCvCameraView.enableFpsMeter();
               mOpenCvCameraView.enableView();//뷰 활성화
.........................
        // onCameraFrame 에서...
        mRgba = inputFrame.rgba();
        if(!isFaceVisible){
        Imgproc.resize(mRgba, mRgba, new Size(1,1));//리턴값을 투명하게 하는 대신 1,1사이즈로 해서 안보이게함
       }
.........................
@Override
public void onCreate() {
super.onCreate();
Log.i("TAG", "Face Service Started");
li = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);
mParams = new WindowManager.LayoutParams(
WindowManager.LayoutParams.WRAP_CONTENT |// TODO : 크기 줄이기
WindowManager.LayoutParams.TYPE_PHONE | //항상 최상위. 터치 이벤트 안받기 가능.
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | //포커스를 가지지 않음
WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON | //타임아웃으로 잠금 안됨
PixelFormat.TRANSLUCENT);
//이거 없애도 투명하게 되는거 처리안됨. 뷰는 정상적으로 뜨는거 같음
mParams.gravity = Gravity.LEFT | Gravity.TOP; //좌표계가 좌상점을 중심으로..
mWindowManager = (WindowManager) getSystemService(WINDOW_SERVICE);
mPopupView = (RelativeLayout) li.inflate(R.layout.nativecam_view, null);
mOpenCvCameraView = (NativeCameraView) mPopupView.findViewById(R.id.NativeCameraView1);
mOpenCvCameraView.setCameraIndex(1);
       mOpenCvCameraView.setCvCameraViewListener(this);
       
       mWindowManager.addView(mPopupView, mParams); //SYSTEM_ALERT_WINDOW permission 필요
       OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_9, this, mLoaderCallback);
       global = (GlobalSettings) getApplicationContext();//super.onCreate()뒤에 넣자
}
꼬릿말 보기
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호