【问题标题】:reading a 16-bit grayscale tiff读取 16 位灰度 tiff
【发布时间】:2013-06-14 00:33:39
【问题描述】:

我正在编写一个 scala 程序,该程序需要能够读取 16 位灰度 tiff 图像并对单个像素进行一些复杂的计算。

具体来说,我希望一个库能够从 tiff 文件中获取所有像素强度值的 Array[Int],并能够从这种数据结构中写入图像。

我的问题是哪些图书馆能够做到这一点?

感谢您提供的任何帮助。

【问题讨论】:

  • 嗨,我想看看 Java 标准 imageio 库。 docs.oracle.com/javase/6/docs/api/javax/imageio/ImageIO.html 你需要做一些工作才能从 ImageIO 到 BufferedImage 到 Array[Int],但我认为这不会很难。
  • javax.imageio 是一个优秀的包,但它不支持 TIFF。为此,您需要 Sanselan 或 Scrimage。

标签: scala tiff


【解决方案1】:

我最终使用 imageJ API 来解决这个问题。这里有一篇关于 API 的优秀文章:http://albert.rierol.net/imagej_programming_tutorials.html#ImageJ Programming basics

这个块为您提供了一个 ShortProcessor (http://rsb.info.nih.gov/ij/developer/api/ij/process/ShortProcessor.html),您可以使用它来查询单个像素或获取所有像素的 Array[Short] 转储。

val opener = new Opener()
val imp = opener openImage path
val sp = (imp.getProcessor()).convertToShort(false)

另外,这是你想要的 sbt 行

libraryDependencies += "gov.nih.imagej" % "imagej" % "1.46"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-19
    • 1970-01-01
    • 2014-08-09
    • 2012-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多