问题标签 [opencv4android]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
14699 浏览

java - Android document scanner using opencv

I am in the process of trying to develop a document scanner within an application of mine. As an example of what I want to achieve you can take a look at the Google document t scanner built into the Google drive app.

This allows

  1. Detect edges
  2. Manipulate into perspective
  3. Display top down view of document

I have been looking at a number of 3rd party api to see if this can be achieved but they seem more focused on OCR. Which is not a priority of mine.

I have however stumbled across this document scanner

Where it makes a document scanner using java open cv. Within the comments someone asked about the possibility of porting this to an android application. Apparently this is possible.

I have researched importing the open cv library within my IDE (android studio). This is also possible.

As I have not done this before I would be grateful if someone could help me identify any potential issues or alternative implementations which would help me achieve my goal.

I am eager to develop this myself with relying on 3rd parties where possible

0 投票
1 回答
483 浏览

android - Android 即时编辑图像

似乎在 Android 中没有用于编辑和保存图片的“简单”库,既不是免费的,也没有许可证)。鸟舍不再可用。

我必须实现一个用于拍照的应用程序,即时编辑一些效果(渐晕对比度,亮度......),添加一些文本并保存。一个迷你Instagram

在研究之后,我对哪一个是解决它的正确位置有些怀疑。

  • EffectFactory:允许在GLSurfaceView中应用效果。这可能会起作用,因为有一种方法可以将其保存在位图上。

  • OpenCV:我不确定这是否太重而无法仅包含在项目中以应用这些效果。由于用户可以拒绝安装它,因此我不能午餐管理器在运行时安装它。

    • EffectFactorythis的结合:想法是使用EffectFactory 动态应用效果,然后选择最终配置,一旦用户接受更改,将其应用到源位图上。

我有点迷茫,这将是一种实现方式。

如果我使用 OpenCV,您是否建议我也应该使用它来拍照?

有什么建议吗?

谢谢

0 投票
1 回答
1277 浏览

android - android,在opencv中应用棕褐色过滤器

我是 Android OpenCV 的新手,我正在尝试使用 Mat 内核应用棕褐色效果。我实现了一个过滤器类,用于在源 Mat 中应用过滤器。

这是实现接口过滤器的 SepiaFilter 类:

这是从文件中获取 Mat 的静态方法。我正在使用这种静态方法以使用相同的过程打开所有图像。我还不是 100% 确定我应该为Imgproc.COLOR_BGR2RGBA申请的颜色。

这是对类的调用:

最后一步是从 Mat 中获取 Bitmap:

一旦我应用过滤器,它部分或几乎所有图像都是白色而不是棕褐色。我想知道我做错了什么。我猜它可以是Sepia KernelCore.transformation。我也试过Imgproc.COLOR_BGR2RGBA

我一直在检查以获取想法的一些链接

http://answers.opencv.org/question/30328/how-to-implement-filters/

这里是 mSepiaKernel

0 投票
1 回答
506 浏览

android - 如何从android中的图像检测房间的地板

我正在开发一个 android 应用程序,在这个应用程序中,我需要拍摄一个房间的照片并获取这个房间的长度和宽度大小。我还需要检测那个房间的地板。我不知道从哪里开始所以给我一些指导。

0 投票
1 回答
979 浏览

android - 使用 FeatureDetector OpenCv Android 时出错

我想使用 opencV android 来处理图像;我需要使用 sift,所以我写了这段代码:

但是我有这个错误:

我该如何解决?

0 投票
1 回答
662 浏览

opencv3.0 - 适用于 Android 的 OpenCV - OpenCL 支持

我一直试图弄清楚 Android 上的 OpenCV 3.0 是否应该支持 OpenCL,但找不到明确的答案。最后,我从几个设备的“haveOpenCL”中得到了否定的答案。有人可以告诉我默认情况下是否支持它,如果不支持 - 有没有办法启用它?

谢谢,雅科邦

0 投票
1 回答
5102 浏览

android - Android OpenCV 纸张检测

我认为这个问题之前被问过,但我没有找到我的问题的示例或解决方案。我是 opencv 新手,我想使用 OpenCV CameraPreview 进行纸张检测。在我的示例应用程序中,我使用带有静态初始化的 opencv 3.0.0。我了解对象识别可以通过以下步骤完成:

  1. 使输入图像 Canny
  2. 模糊精明的图像
  3. 在模糊的 Canny 图像上查找轮廓
  4. 搜索矩形等
  5. 画线或用半透明颜色填充矩形

我现在的问题是我可以精明和模糊图像,但我不知道如何找到轮廓和矩形并用半透明颜色填充它们。

这是我当前的 onCameraFrame 函数:

任何人都可以帮我解决纸张检测的问题并有一个 android/java 的代码示例吗?谢谢

0 投票
1 回答
560 浏览

android - 不同版本的 OpenCV 使用什么版本的 libpng?

在我的应用程序中,我正在阅读 .png 图像并进行一些处理。OpenCV 2.4.9 和 OpenCV 3.0.0(都适用于 windows)的输出并不精确。什么可能是潜在的错误。导致问题的两个版本中的 libpng 是否有任何差异。

同样,Windows 的 OpenCV 和 Android 的 OpenCV 的相同版本(例如 2.4.9 或 3.0.0)中的库(例如 libpng)或库的版本是否有任何可能不同。

0 投票
1 回答
2886 浏览

android - 在 OpenCV (Android) 中禁用自动白平衡

我正在使用 Android 上的 OpenCV 2.4.9 来跟踪彩色对象。跟踪效果很好,但有时会在自动白平衡启动并重新调整帧的色温时停止工作。

目标

禁用或锁定自动白平衡功能

-

尝试的解决方案

CameraBridgeViewBase 对象(示例 OpenCV 项目中的 mOpenCvCameraView)中似乎没有用于禁用自动白平衡的选项。但是,可以选择禁用 Android Camera 对象的 AWB。

我一直在尝试使用 Camera 对象设置自动白平衡锁定,然后使用 CameraBridgeViewBase 对象和 CvCameraViewListener 恢复正常工作,如下所示。

但是为 mCamera 设置的参数似乎不坚持 CvCameraViewFrames,并且相机保持自动白平衡。

问题

如何使 CvCameraViewListener 帧的 Camera 对象参数“粘住”?

0 投票
1 回答
1161 浏览

java - 在 OpenCV 中使用我自己的公式将 RGB 转换为灰色

我想像这个函数一样将 RGB 图像转换为灰色:

但是 openCV 使用一个特定的公式(0.299*R + 0.587*G + 0.114*BI 认为?),我想使用 min(R,G,B) 代替。

有没有一种高效的方法来做到这一点?(这是适用于 android 的 OpenCV,因此适用于 Java)

编辑 :

这是分析,我绝对应该早点完成:

捕获相机的基本应用程序以 12 FPS 运行

  • 使用 OpenCV 的 cvtColor() :12 FPS(速度差异微不足道)
  • 马克米勒的回答:1.5 FPS
  • 用 Mark Miller 的回答和 Miki 的优化(获取数据指针一次):7 FPS

这可能看起来令人难以置信,但只是这个小功能花费了 FPS 的一半。该设备还可以以不错的速度(3-4 FPS)运行非常复杂的东西,例如 ORB,并且所有 O(n) C++ 例程都没有 FPS 差异。也只是 Miki 的“技巧”使函数快了 10 倍。