2014-09-02 4 views
0

매트 직사각형을 onCameraFrame에서 비트 맵으로 변환하려고합니다. 그러면 ocr이 직사각형에 따라 ROI에서 실시간으로 작동해야하기 때문에 비트 맵을 ocr 함수로 보냅니다. 나는이 선을 시도했다 :매트를 비트 맵으로 변환 opencv

 Mat mgray= inputFrame.gray(); 

     Mat grayInnerWindow = mgray.submat(100, 100 +500, 150, 200 + 50); 
     Imgproc.cvtColor(mIntermediateMat, rgbaInnerWindow, Imgproc.COLOR_GRAY2BGRA, 4); 
     rgbaInnerWindow.release(); 


     Size sizeGray = grayInnerWindow.size(); 
     int rowss = (int) sizeGray.height; 
     int colss = (int) sizeGray.width; 

     Mat tmp = new Mat(colss, rowss, CvType.CV_8UC4); 

     Imgproc.cvtColor(rgbaInnerWindow, tmp, Imgproc.COLOR_RGBA2BGRA, 4); 
     Bitmap bmp = Bitmap.createBitmap(tmp.cols(), tmp.rows(), Bitmap.Config.ARGB_8888); 
     Utils.matToBitmap(tmp, bmp);     
     ImageView Img = (ImageView)findViewById(R.id.image_manipulations_activity_surface_view);    
     Img.setImageBitmap(bmp); 

그러나 나가 그것을 달릴 때.

+2

종료 (완전히 쓸모 BGRA로 RGBA에서, 모든 계조 화상 4 채널을 전환한다) 왜! 여기에 Logcat이 필요합니다 ... – sschrass

답변

0

rgbaInnerWindow를 해제하면 cvtColor에 대한 입력으로 다시 사용합니다. 지속된다, rgbaInnerWindow이/무효 지금 비어

네 .. 또한

, 왜 모든 cvtColor 호출? 당신은 당신의 ocr에 8 비트 그레이 스케일 이미지를 전달할 수 없습니까?

**

관련 문제