gpt4 book ai didi

android - 使用 Android 捕获图像的 OpenCV

转载 作者:太空狗 更新时间:2023-10-29 15:53:50 26 4
gpt4 key购买 nike

在 android 中捕获图像并使用 opencv 处理它们的最佳方法是什么?我应该使用表面 View 吗 As here或者我应该像在 opencv 示例中那样使用 opencv 相机?以及如何加载捕获的图像并将其转换为 Mat?提前致谢

 private PictureCallback mPicture = new PictureCallback() {

@Override
public void onPictureTaken(byte[] data, Camera camera) {

File pictureFile = getOutputMediaFile(MEDIA_TYPE_IMAGE);
if (pictureFile == null) {
Log.d("E",
"Error creating media file, check storage permissions ");
return;
}

try {

FileOutputStream fos = new FileOutputStream(pictureFile);
fos.write(data);
fos.close();
//processImage();
} catch (FileNotFoundException e) {
Log.d("E", "File not found: " + e.getMessage());
} catch (IOException e) {
Log.d("E", "Error accessing file: " + e.getMessage());
}
}

最佳答案

在 OpenCV 示例中,有一个 CameraBridgeViewBase 有助于捕获、处理和显示相机预览的结果(低分辨率图像的连续流)。

如果你想以更高的分辨率处理单个捕获,你应该使用类似于 onPictureTaken() 的东西。然后您可以使用 Highgui.imread() 读取图像并对其进行处理。

您还可以通过使用 BitmapFactory.decodeByteArray() 从数据数组创建位图来避免写入和读取文件然后使用 Utils.bitmapToMat() 将 Bitmap 转换为 Mat

关于android - 使用 Android 捕获图像的 OpenCV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19218844/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com