使用 ImageJ 转换图像格式
converting an image format with ImageJ
我使用以下代码将图像从 fits 格式转换为 jpeg 格式
ImagePlus fitsImage = openImage(fitsImagePath);
final File out = new File(fullPath + fileNameNoExt + ".jpg");
BufferedImage jpgImage = fitsImage.getBufferedImage();
ImageIO.write(jpgImage, "jpg", out);
实际格式更改有效,我确实得到了一个 jpg 文件,但问题是生成的文件是黑白的,我知道我使用的图像是彩色的。
所以问题是我应该怎么做才能使生成的图像着色。
干杯,
es
出于某种原因,getBufferedImage() 函数仅复制 8 位格式的数据。由于我不熟悉适合格式,它有什么像素深度以及你的数据有什么像素深度?
如果您导入的是红色、绿色或蓝色的假色 8 位,那么当您导出时它将保持其 8 位灰度而不是假色。
如果您希望它保持其 rgb 格式,则必须在导出之前将其转换为 rgb 格式。
函数命令 flatten 可能会有所帮助,因为它将图片转换为 RGB 格式
fitsImage.flatten()
我使用以下代码将图像从 fits 格式转换为 jpeg 格式
ImagePlus fitsImage = openImage(fitsImagePath);
final File out = new File(fullPath + fileNameNoExt + ".jpg");
BufferedImage jpgImage = fitsImage.getBufferedImage();
ImageIO.write(jpgImage, "jpg", out);
实际格式更改有效,我确实得到了一个 jpg 文件,但问题是生成的文件是黑白的,我知道我使用的图像是彩色的。
所以问题是我应该怎么做才能使生成的图像着色。
干杯,
es
出于某种原因,getBufferedImage() 函数仅复制 8 位格式的数据。由于我不熟悉适合格式,它有什么像素深度以及你的数据有什么像素深度?
如果您导入的是红色、绿色或蓝色的假色 8 位,那么当您导出时它将保持其 8 位灰度而不是假色。
如果您希望它保持其 rgb 格式,则必须在导出之前将其转换为 rgb 格式。
函数命令 flatten 可能会有所帮助,因为它将图片转换为 RGB 格式
fitsImage.flatten()