问题标签 [boofcv]

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 回答
224 浏览

boofcv - Boofcv 视频马赛克示例编译错误

我在eclipse中添加"boofcv\evaluation\visualization\src"到我的普通java项目中。我也添加了预编译库。除了这一行之外,所有其他 java 文件都很好:

在此处输入图像描述

错误:

任何帮助表示赞赏。

0 投票
1 回答
359 浏览

java - BoofCV / Java - 用高斯卷积构造图像的 Hessian 矩阵

我想建立一个灰度图像的 Hessian 矩阵,但我需要计算二阶导数。我正在使用BoofCV,我发现了一个计算一阶的函数:

我使用作为输入参数“sigma”(标准偏差)。是否有函数或其他方法可以使用输入 sigma 和灰度图像计算二阶导数?

我对其他 Java CV 库建议持开放态度。

0 投票
2 回答
291 浏览

java - JAVA BoofCV 方法的 Android 替代方案

我一直在使用Boof CV库进行图像拼接并遵循了这个

我必须将一些数据类型方法转换为 android 可接受的。

我想要在 Android BoofCV 中与此等价

其中imageA是位图图像。

0 投票
1 回答
605 浏览

java - 如何使用 boofcv 提取象形图?

我在将象形图提取为一些可进一步处理的格式时遇到问题,因为现在我得到了这样的结果:

图片 图像1

当前解决方案的一部分取自 BoofCV ImageTresholding 示例。我对此解决方案的代码如下:


我知道如何在标志上提取象形图,我已经通过从填充蒙版中减去蒙版来完成它,但是在获得一些可处理的结果时遇到了问题,因为最后我有一个灰度图像而不是二进制图像(或者它在 boofCV 中ImageUInt8)。

我如何正确地减去两个图像的ImageUInt8格式,所以结果也是ImageUInt8

今天我已经写了该算法的另一部分,现在我想问的问题更清楚了。这是添加的代码(来自//图像减法的一部分:wynik=mask-filtered;)和 2 张附加图片作为处理的产品。

问题是去噪后的最后一张图像是纯黑色并且没有任何信息。如何正确转换图像以获得可处理的内容?我做错了什么?

0 投票
2 回答
527 浏览

android - Android Studio中的BoofCV gradle构建错误

当我将 BoofCV 集成到 Android Studio 中时,发生了以下错误,

com.android.dex.DexException:多个dex文件定义了Lorg/xmlpull/v1/XmlPullParser;在 com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:579) 在 com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:535) 在 com.android.dx.merge.DexMerger.mergeClassDefs (DexMerger.java:517) 在 com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:164) 在 com.android.dx.merge.DexMerger.merge(DexMerger.java:188) 在 com.android。 dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:504) 在 com.android.dx.command.dexer.Main.runMonoDex(Main.java:334) 在 com.android.dx.command.dexer.Main。在 com.android.dx.command.Main.main(Main.java:106) 的 com.android.dx.command.dexer.Main.main(Main.java:245) 处运行 (Main.java:277) 错误:任务 ':app:dexDebug' 执行失败。com.android。

我的 build.gradle 文件是

0 投票
1 回答
666 浏览

java - 带有 BoofCV 的 Java 小波变换(Haar 或 Daubechies)

有人知道如何在 Java 中使用 BoofCV 的小波变换(Haar 或 Daubechies)吗?

网络上没有代码示例,我对这个库很陌生。

我在下面尝试了这段代码,但没有结果。

我也尝试过 JWave,但也没有代码示例,负责人也无法提供帮助。

谢谢!

0 投票
3 回答
1557 浏览

android-studio - 如何在 Android Studio 中使用 BoofCV?

如何在我的 Android Studio 项目中导入 BoofCV?我已经看过这里了。我完全糊涂了。请为我提供分步指南。我感谢您的帮助。

0 投票
1 回答
474 浏览

android - BoofCV Android:检测手势

我想检测用户在镜头前的 4 个基本手势。当用户在相机前从左到右、从右到左、从上到下、从下到上移动手时。如何使用 BoofCV for android 实现这一目标?起步步骤是什么?

0 投票
2 回答
394 浏览

java - 如何从图像中检测机器人方向?

我正在开发可以在玉米植物中运行并由指南针传感器引导的机器人,但我想将相机用作机器人的眼睛并使用图像处理来检测运动的误差角度。

这是图像示例。

处理后的图像 原始图像分割图像处理后的图像 原始图像 分割图像

我使用以下步骤

  1. 第 1 步:我使用的当前技术是将颜色值转换为从此代码修改的 HSV

  2. 第 2 步:所以它会检测选择的颜色是棕色或脏颜色,然后我在两个数组(一个红点)中收集每个图像行的最左边和最右边的棕色或选择的颜色。

  3. 第 3 步:我将 2 线性回归线绘制为蓝点,并将交点计算为粉红色点
  4. 第 4 步:绘制绿线以将粉红色点与其他图像进行比较。我还不确定如何处理这条绿线
  5. 问题是玉米叶之间也存在污垢或棕色,然后我让我的代码错过了计算

问题是如何过滤掉玉米叶之间或不在玉米路径中的其他区域的棕色像素?在这个问题中我应该学习或应用哪种算法或方法?

EDIT1:使用 Spektre 的答案,看起来更好

这是我用 JAVA+Boofcv 应用后的结果

  • 第 1 步:阈值化或颜色分割 阈值或颜色分割

  • 第 2 步:模糊(使用高斯和中值滤波器) 模糊

  • 第 3 步:绘制线性回归 绘制线性回归

更多信息

完整代码在这里

线性回归类

10个具有相同过程的示例图像

0 投票
0 回答
777 浏览

java - BoofCV Structure from motion (Sfm) by Example

我第一次玩弄运动结构(Sfm)和 3D 模型重建。最终结果是能够从一系列图像中生成(相当准确的)3D 模型。

作为一名 JVM 开发人员,我的自然倾向是寻找可用的 Java 库。我发现BoofCV似乎是一个具有不错特性和功能的活跃项目。但是我花了半天的时间按照他们的 Sfm 示例进行操作,但对结果并不满意。如果您有兴趣复制它们,我制作了一个小示例项目,您可以自己克隆和构建。但 TL;DR 是代码应该渲染这把椅子的 3D 模型:

在此处输入图像描述

......但相反给了我一些非常模糊的类似于椅子的东西:

在此处输入图像描述

它甚至可以做到这一点非常棒(向 BoofCV 团队致敬!!!),但仍然不是我所期待的(再说一次,作为 CV 的全新用户,也许这个结果是完全可以预料的,并且代表了最佳的 Sfm能力,我不知道!)。我将这些结果与 Python Photogrammetry Toolbox (“PyPT”) 库结果进行了比较,结果是3D 生成的头骨,而且,BoofCV 只是让我想要更多……

该 PyPT 示例清楚地展示了令人敬畏的功能,显然 Google 使用PMVSCMVS来实现其 3D 映射功能。因此,显然还有其他开源库可以完成工作......而且很好。

所以我问:

  1. 我的项目(上面链接)中的示例代码是否没有完全利用 BoofCV 的 Sfm/重建功能?或者
  2. BoofCV 是否不如这些其他库好用?如果是这样,是否有人知道可以为 BoofCV(功能/功能方面)做出哪些贡献以使其与这些其他库相提并论?或者
  3. 我是否只是错误地解释了这些结果,也许上面的主席结果与这些其他库给我的结果一样准确,但我只是没有以正确的方式看待它?!?