我想制作一个android自定义相机来捕捉像card io这样的特定区域。我想捕捉边界内的图像。也想在屏幕上显示边框。我为此使用了 opencv

附上图片供引用

最佳答案

如果您使用的是 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 现在将包含矩形中包含的图像。

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

关于android - 如何让安卓相机捕捉屏幕内的特定区域?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21526439/

10-10 09:46