问题标签 [openimaj]

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

java - OpenIMAJ 库无法读取 tiff 文件?

我正在使用 OpenIMAJ 库,它在“JPEG”和“PNG”文件上运行良好,但在 tiff 文件上它给了我一个错误。这是代码:

这是错误:

这是我正在使用的 tiff 文件(特别是 GeoTiff):

https://drive.google.com/file/d/0ByKaCojxzNa9MWxPTUJjZURHR1E/view?usp=sharing

这是否意味着 OpenIMAJ 库不支持 tiff 格式/GeoTiff?

我认为 OpenIMAJ 不支持 tiff,所以我尝试使用“TwelveMonkeys”库来读取该文件。“TwelveMonkeys”库单独/单独能够读取文件。因此,我导入了 TwelveMonkeys 库以与 OpenIMAJ 一起工作,因此支持 tiff 文件,这适用于某些 tiff 文件,但对于该文件它不起作用(尽管“TwelveMonkeys”能够在单独的项目中单独读取它)并且我得到了这个例外:

后来,当我跟踪错误消息时,我发现某些内容可能与文件的大小有关,因为它大约为26mb,我注意到错误源于类“org.openimaj.image.ExtendedImageIO”的“读取”方法,我认为它使用最大10mb的大小:

那么我该如何解决这个问题并在 OpenIMAJ 中读取该 tiff 文件(为了进一步应用设施,OpenIMAJ 提供了类似集群/分段的功能)?

0 投票
1 回答
71 浏览

java - 如何在 OpenIMAJ 库中设置 KMColourSegmenter 的初始质心?

我想测量 OpenIMAJ 库中的 KMColourSegmenter 执行聚类所需的时间。

如果我没有使初始质心固定而不是随机,我就无法衡量性能;因为它每次都会改变,给出不同的迭代次数,并且执行聚类的时间也会不同。

那么如何使初始质心固定,即手动设置它们?

更新:

@Jon感谢您的回答,我正在尝试实施您所说的。你能检查一下吗,尤其是“集群”数组,我认为这个数组初始化没有意义。如果我错了,请纠正我。

0 投票
0 回答
618 浏览

opencv - 检测微笑的不同方法

我想更多地了解检测图像上微笑的不同方法。据我所知,有许多库允许检测面部和微笑。我试过的是:

而不是仅仅使用它们,我很好奇它们是如何工作的。我知道 OpenCV 和 OpenIMAJ 基于 Haar 分类器工作。我不太了解 FaceSDK 是如何进行面部和微笑检测的。

我可以想象,您可以获得两种不同的微笑检测方式:

  1. 进行全面的情绪检测。你可以在脸上找到眼睛、鼻子、嘴巴和其他特征,然后根据这些信息计算情绪。如果你得到“快乐”的情绪,你可以假设,有微笑(或类似的东西,只是找到嘴巴并检查下唇的曲线?)。

  2. 类似于 Haar 级联,搜索图像并尝试找到与您正在搜索的对象相似的对象(具有许多负样本和正样本)。如果不与某些“帮助者”一起使用,这似乎更快,但不太值得信赖。

还有其他方法吗?你们有关于其中一种方式的文章吗?

0 投票
1 回答
91 浏览

java - 如何在 OpenIMAJ 中使用自定义字体

我正在做一个项目,我想使用自定义字体在图像上绘制文本。我不想使用内置的 OpenIMAJ 字体。有没有办法做到这一点?

0 投票
1 回答
259 浏览

java - OpenImaj - 识别形状

我的目的是在训练分类器后识别形状,类似于 OpenIMAJ 教程http://openimaj.org/tutorial/classification101.html第 12 章中所做的。第 12 章使用 Caltech101 类,这对我没有帮助,因为我想使用自己的一组图像来训练分类器。我创建了这个基于第 12 章的工作代码:

该代码有效并产生以下输出:

我不知道我是怎么离开这里的。我真正想要的不是评估分类器的准确性——就像第 12 章中所做的那样——而是使用分类器来确定新图像是否具有我感兴趣的形状。我没有找到任何文档或示例展示了如何做到这一点。任何帮助将不胜感激。

除了教程,我没有找到任何重要的文档。谁能给我指出它在哪里?同时我只是猜测。我不能使用 testDataset,因为训练分类器和使用分类器之间需要分开。所以我想训练分类器一次(需要很长时间 - 很多分钟)并保存结果(比如将上面的训练器对象序列化到磁盘并在以后的调用中反序列化它)。当我添加代码来执行此操作并尝试在新图像上使用 testDataset 时,我得到一个空指针异常。该异常与反序列化对象无关,因为当对象尚未在磁盘上时,我也会得到异常。新代码:

例外:

调用时发生异常

任何想法如何解决这一问题?

根据@jon 的回答添加代码的第 3 版。现在的问题是它将虚假图像分类为真实。

0 投票
0 回答
884 浏览

java - cpu使用率高和内存泄漏

请原谅我的英语技能。

由于某些原因,我以这种方式实现了一切(主要是由于缺乏java实践经验和对多线程的无知)。这段代码的工作方式或多或少符合我的预期,但事实证明它具有很高的 cpu 使用率(经过一些更改后,它现在从 30% 到 70% 不等)和明显的内存泄漏(当它开始占用大约2 Gb 的 RAM 对于 GUI 和 PC 来说,一切都在逐渐变得糟糕)。我已经尽我所能尝试修复它。

我很高兴听到任何提示以及在这种情况下我能做些什么(即使这些是 Java 通用提示)。

/由于降低了文凭的独创性而删除了代码/

我想将 CPU 使用率至少降低到可接受的水平,更重要的是我想摆脱上面提到的内存泄漏。

0 投票
1 回答
66 浏览

java - 调整大小过程中的 OpenImaj OutOfMemoryError

我有两张照片,一张是放大的,第二张是大的广角照片。考虑第一个图像是第二个图像的裁剪(尽管它不是)。我从每张照片中选择一个像素,代表两张照片中的相同事物(比如一个男人的鼻子)。我将第一张图片以一定的透明度覆盖在第二张图片的顶部,对齐两个选定的像素?

现在我想缩放第二张图像,直到第一张图像基本上消失,因为第二张图像的比例与第一张图像的比例匹配。

我正在使用 OpenImaj,并使用 MBFImage.overlayInPlace() 成功完成了这项工作。我遇到的问题是,当我使用 ResizeProcessor 缩放第二个图像时,如果我必须将第二个图像缩放太多( >5x ),我会得到一个“OutOfMemoryError: Java Heap Space”。

我已经使用 JDK 12 64bit 将 -Xmx 提升到 12G。我尝试了 ResizeProcessor、BilinearInterpolation 和 BicubicInterpolation 调整器,结果都一样。

这是我最近尝试的方法。根据我给 JVM 的内存量,它有时会在调整大小时失败,有时会在 toRGB() 上失败:

这是我叠加图像的地方:

我可以选择两条前进的道路之一:

  1. 修复 OutOfMemoryError
  2. 叠加两个图像的另一种方法
0 投票
1 回答
33 浏览

java - 获取没有孔的图像的斑点

我有一个包含各种 blob 的图像,我只想获得没有孔的 blob。

我尝试使用SuzukiContourProcessor.findContours来完成此操作,但它返回Contours 类型ContourType.HOLEContourType.OUTER. 有没有办法以某种方式将 a 转换ContourType.OUTER为列表ContourType.HOLE

还是有更好的方法来完成我所追求的?

0 投票
1 回答
219 浏览

java - 使用 openimaj 进行面部裁剪

裁剪 MBFImage

我使用精湛的 openimaj 库 1.3.8 检测到一张脸,但我努力从原始图像中裁剪人脸并将裁剪的人脸保存到某个文件中。裁剪的面孔必须是 800x600 像素,所以我也需要一些缩放。

这一定是一个简单的任务,但是 api 很大,我找不到适合这个用例的教程

也许你告诉我在哪里可以找到信息?

0 投票
1 回答
18 浏览

video-processing - Openimaj 支持 gpgpu 吗?

我可以看到 OpenImaj 在其代码中使用 OpenCL。但我在文档和谷歌中找不到任何关于 OpenImaj 支持 GPGPU 的信息。

我很困惑。OpenImaj 是否使用 GPU 加速?

如果是,为什么不在其文档中说明?