我正在编写一个scala程序,需要能够读取16位灰度tiff图像并对各个像素进行一些复杂的计算 .
具体来说,我希望一个库能够从tiff文件中获取所有像素强度值的Array [Int],并且能够从这样的数据结构中写入图像 .
我的问题是库能够做到这一点吗?
感谢您的任何帮助,您可以提供 .
你可以用这个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
我最终使用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"
2 回答
你可以用这个https://github.com/sksamuel/scrimage
然后像素是Array [Int],其中每个元素是ARGB像素 . 组件是Array [Array [Int]],其中每个数组元素是一个四整数数组 - 一个用于alpha,reg,green,blue
我最终使用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]转储 .
此外,这是你想要的sbt线