我正在尝试将Mat矩形从onCameraFrame转换为位图,然后将位图发送到ocr函数,因为我需要根据矩形使ocr在ROI上实时工作。我尝试过以下几行:
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);
但是当我把它运行终止时。
答案 0 :(得分:0)
您正在发布rgbaInnerWindow,然后将其重新用作cvtColor的输入。
是的,那会燃烧,rgbaInnerWindow现在无效/空了..
另外,为什么所有那些cvtColor调用?你能不能将8位灰度图像传递给你的ocr?
(转换4通道,所有灰度图像从rgba到bgra完全没用)