如何让Android摄像头捕获屏幕内的特定区域?

时间:2014-02-03 11:39:46

标签: android opencv camera

我想制作一个Android自定义相机来捕捉卡片io等特定区域。我想捕捉边界内的图像。我也希望在屏幕上显示边框。我正在使用opencv

附上图片以供参考 enter image description here

1 个答案:

答案 0 :(得分:2)

如果您使用的是opencv,那么我认为您将有一个名为onCameraFrame的回调,它会为您提供一个代表相机帧的Mat:

mRgba = inputFrame.rgba();

要生成边框,您可以在调用onCameraFrame之前返回mRgba之前简单地写入mRgba。我在这里做了类似的事情 - 在这种情况下我画了一个矩形:

Core.rectangle(mRgba, new Point(w * 1 / 3, h * 1 / 3), new Point(
                w * 2 / 3, h * 2 / 3), Colours.RED);

现在,如果您只想要矩形的内容,那么您可以使用submat:

 Rect roi = new Rect(new Point(w * 1 / 3 + 1, h * 1 / 3 + 1),
                new Point(w * 2 / 3, h * 2 / 3));
 Mat viewFinder = mRgba.submat(roi);

在这种情况下,viewFinder现在将包含矩形中包含的图像。

我希望能回答这个问题,但如果您需要更多信息,请回复我。