首页 文章

读取16位灰度tiff

提问于
浏览
1

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

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

我的问题是库能够做到这一点吗?

感谢您的任何帮助,您可以提供 .

2 回答

  • 1

    你可以用这个https://github.com/sksamuel/scrimage

    val in = getInputStreamForImage
    val tiff = TiffReader.read(in)
    val pixels = tiff.pixels
    val components = tiff.argb
    

    然后像素是Array [Int],其中每个元素是ARGB像素 . 组件是Array [Array [Int]],其中每个数组元素是一个四整数数组 - 一个用于alpha,reg,green,blue

  • 0

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

    这个块会为您提供一个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"
    

相关问题