2013-10-28 2 views
0

카메라 뷰에서 MatchTemplate을 사용하려고했지만 비트 맵을 다시 매트로 변환하려고하면 출력 매트가 null이며 오류가 없습니다.비트 맵 매트로 출력 됨 매트가 null

public Mat onCameraFrame(CvCameraViewFrame inputFrame) { 
    mRgba = inputFrame.rgba(); 
    mGray = inputFrame.gray();  


     if(Template != null){ 

      Imgproc.matchTemplate(mRgba, Template, mRgba, Imgproc.TM_SQDIFF); 
      Core.putText(mRgba, "Matching", new Point(50, 50), BIND_AUTO_CREATE, BIND_AUTO_CREATE, Color_Green, 2); 
     } 
    return mRgba; 
    } 
    @Override 
    public boolean onTouch(View v, MotionEvent event) { 
    // TODO Auto-generated method stub 
      Mat tmp = new Mat (100, 100, CvType.CV_8UC3, new Scalar(4)); 
     Imgproc.cvtColor(mRgba, tmp, Imgproc.COLOR_RGBA2mRGBA, 0); 
     bmp = Bitmap.createBitmap(mRgba.cols(), mRgba.rows(), Bitmap.Config.ARGB_8888); 
     Utils.matToBitmap(tmp, bmp); 
     bmp = Bitmap.createBitmap(bmp, mRgba.cols()/2-50, mRgba.rows()/2-50, 100, 100, null, false); 

     //show for debug    
     ImageView Img = (ImageView)findViewById(R.id.imageView1);     
     Img.setImageBitmap(bmp); 

     Bitmap matbitmap = bmp.copy(Bitmap.Config.ARGB_8888, false); 
     Utils.bitmapToMat(matbitmap, Template);//the output Template is null,so that I can't do next work 

     return false; 
     } 
+0

Template에 대한 선언을 추가 할 수 있습니까? – littleimp

답변

0

템플릿을 초기화해야합니다.

Mat Template= new Mat(); 

그런 다음 사용할 수 있습니다. 또한 Utils.bitmapToMatTemplate = null에 예외를 던질 것으로 예상되지만 다른 이야기입니다 ...

+0

'Template'은 더 이상 null이 아니지만 'Imgproc.matchTemplate (mRgba, Template, mRgba, Imgproc.TM_SQDIFF);'는 다른 오류가 발생했습니다 도움을 주셔서 감사합니다 – Tony