java - 用于分割和分类二进制或灰度图像的库

标签 java image-processing

我正在将科学 (STEM) 图像解释为其组成部分并添加语义。这些图像天生就是数字的、无噪声的、二值的(单色)或少量的颜色。我希望 Java 库/方法将图像分区为空格分隔的组件,并识别(分类)结果片段。典型的图像是:

enter image description here

我希望提取的段包含数字和其他字符(一些旋转)以及图中的星号。 [我将使用其他方法来提取几何分量 - 例如酒吧)。我还希望库能够识别相同的段(例如 6 个零字符、5 个小数点)。我已成功将 Tesseract 用于字符,但许多段可能不属于 Unicode 字符集(例如专门创建的符号)。

更新:我已经开启了赏金。我只对库感兴趣,而不是算法建议,因为我已经编写了一个原型(prototype)。如果该功能是更大系统的一部分(例如,我认为 JBIG2 具有此功能),请明确入口点在哪里。

注意:“天生数字化”意味着图像是在没有噪音、干净的线条的情况下创建的,与扫描文档不同。

最佳答案

我只知道openCV 。有了这个,您可以分析您的图像,如下所示:

  • 将其二值化(如果您有几种颜色或灰度)
  • 在 Mat 对象中收集 Blob
  • 获取这些 Mat 的位置以获得正确的标签(应该是每个字母的 Mat)
  • 然后将您的算法应用于这些 Mat

关于java - 用于分割和分类二进制或灰度图像的库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18104474/

相关文章:

java - 如何使用Jhipster创建只读实体?

java - 使用 Java split 计算数学表达式

java - 如何验证 pojo 集合

c - 指针无法读取图像数据

algorithm - 1位位图数据如何转换为8位(24bpp)?

java - 如何使用java访问前置/后置摄像头(webcam-capture)

java - 如何使用 jsoup 定位直接放置在 tr-tag 中的 div-tag

c++ - 在opencv中发现凸性缺陷? [崩溃取决于给定的输入图像..]

c# - C# 中的缩放图像

image-processing - iOS 8 核心图像通过 Swift 保存图像的一部分