分享作者:张淑程
分享时间:2014年5月9日
数据类型:8位灰度或索引色,16位无符号整数,32位浮点和RGB色彩。
文件格式:读写所有支持的数据类型为TIFF(非压缩)或原始数据。打开和保存GIF,JPEG,BMP,PNG,PGM,FITS和ASCII。打开DICOM。使用URL打开的TIFF、GIF文件、JPEG文件、DICOMs和原始数据。也可以扩展许多其他格式 的插件。
图像增强:支持平滑,锐化,边缘检测,中值滤波和阈值的8位灰度和RGB彩色图像。交互方式调整亮度和8位,16位和32位图像的对比度。
几何操作:裁剪,缩放,调整大小和旋转。翻转垂直或水平。
分析:测量面积,平均值,标准偏差,最小的选择和最大或整个图像。测量长度和角度。使用现实世界中的度量单位,如毫米。校准使用密度标准。生成柱状图和剖面图。
色彩处理:分裂一个32位彩色图像转换成RGB或HSV分量。合并8位组件成彩色图像。RGB图像转换为8位索引颜色。应用伪彩色调色板为灰度图像。
基于ImageJ的项目有、CellProfiler(细胞图像分析)、idoimaging(医学影像)、ImageSurfer(3D可视化和分析)、MIPAV(3D成像和可视化)、NITRC(神经影像学工具和资源)等。
下面对ImageJ的编程基础介绍一下。
一、ImageJ的图像剖析
当ImagePlus调用updateAndDraw()时重新创建 java.awt.Image对象。如果你想改变被反映当前显示在屏幕上的图像,必须修改的像素之后调用updateAndDraw()。ImageJ的 图像由三个部分组成:1、ImageProcessor对象实例:持有并提供了访问像素的方法。2、Image对象实例:即java.awt.Image画在屏幕上。3、ImagePlus对象实例:包括所有的元数据(标题,属性)、ImageProcessor和Image。ImageJ的 图像堆栈由四部分组成:1、ImageStack对象实例:持有像素阵列的阵列(LUT变化通过临时实例StackProcessor)2、Image对象实例:即java.awt.Image画在屏幕上。3、ImageProcessor对象实例:提供访问当前切片像素。4、ImagePlus对象实例:持有ImageStack、ImageProcessor和Image。
使用堆栈时,要谨记以下几点:1、ImagePlus的ImageProcessor实例在任何调用setSlice(INT)时都由它的像素替换对象。2、ImageStack.getProcessor(int)在每次调用时都返回一个新的ImageProcessor,是 一个消耗大的操作。3、ImagePlus的java.awt.Image中在每次调用setSlice(int)时被更新。
二、创建图像
1、创建一个图像(详细)
int width = 400;
int height = 400;
ImageProcessor ip = new ByteProcessor(width, height);
String title = "My new image";
ImagePlus imp = new ImagePlus(title, ip);
imp.show();
有几个ImageProcessor类,每个都有自己专门的构造函数。ByteProcessor,ShortProcessor,FloatProcessor和ColorProcessor。
2、创建一个图像(简单方式)
new