【问题标题】:OpenCV with Android Capture ImagesOpenCV 与 Android 捕获图像
【发布时间】:2013-10-07 07:05:57
【问题描述】:

在 android 中捕获图像并使用 opencv 处理它们的最佳方法是什么? 我应该使用表面视图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是用来做什么的?
  • 它是用于图像处理的开源计算机视觉

标签: android opencv android-camera


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2015-07-18
    • 2017-04-15
    • 1970-01-01
    • 2015-01-10
    • 2012-07-03
    • 2012-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多