ImageProcessor

公共类 ImageProcessor

ImageProcessor 是用于预处理和后处理 TensorImage 的辅助类。它可以通过执行 ImageOperator 链将 TensorImage 转换为另一个 TensorImage

用法示例:

   ImageProcessor processor = new ImageProcessor.Builder()
       .add(new ResizeOp(224, 224, ResizeMethod.NEAREST_NEIGHBOR)
       .add(new Rot90Op())
       .add(new NormalizeOp(127.5f, 127.5f))
       .build();
   TensorImage anotherTensorImage = processor.process(tensorImage);
 

警告:使用 updateNumberOfRotations(int) 时,ImageProcessor 实例不具备线程安全性。更新旋转次数然后处理图像(使用 SequentialProcessor.process(T))必须防止并发访问。建议为每个线程创建单独的 ImageProcessor 实例。如果多个线程并发访问 ImageProcessor,则必须在外部同步它。

嵌套类

类别 ImageProcessor.Builder 用于创建 ImageProcessor(稍后可执行)的构建器。

公共方法

RectF
inverseTransform(RectF rect, int inputImageHeight, int inputImageWidth)
将矩形从结果图片的坐标系转换回某张输入图片。
PointF
inverseTransform(PointF point, int inputImageHeight, int inputImageWidth)
将点从结果图片的坐标系转换回某张输入图片。
TensorImage
processTensorImage 映像)
使用准备好的 TensorOperator 处理 TensorImage 对象。
void
updateNumberOfRotations(int k)
更新此 ImageProcessor 中第一个 Rot90Op 的旋转次数。
已同步 void
updateNumberOfRotations(int k, int 网上出现次数)
更新此 ImageProcessor 中由 occurrence 指定的 Rot90Op 的旋转次数。

继承的方法

公共方法

public RectF inverseTransform (RectF rect, int inputImageHeight, int inputImageWidth)

将矩形从结果图片的坐标系转换回某张输入图片。

参数
rect 得到的坐标系的矩形。
inputImageHeight 输入图片的高度。
inputImageWidth 输入图像的宽度。
返回
  • 与输入图片坐标系中的坐标对应的矩形。

public PointF inverseTransform (PointF point, int inputImageHeight, int inputImageWidth)

将点从结果图片的坐标系转换回某张输入图片。

参数
point 结果坐标系中的点。
inputImageHeight 输入图片的高度。
inputImageWidth 输入图像的宽度。
返回
  • 与输入图片坐标系中的坐标相对应的点。

public TensorImage process TensorImage 映像)

使用准备好的 TensorOperator 处理 TensorImage 对象。

参数
图片
抛出
IllegalArgumentException 如果任何操作都不支持该图片。

public void updateNumberOfRotations (int k)

更新此 ImageProcessor 中第一个 Rot90Op 的旋转次数。

警告:此方法不是线程安全的。必须通过额外的同步防止更新旋转次数和处理图像(使用 SequentialProcessor.process(T)),以免进行并发访问。

参数
k 旋转次数
抛出
IllegalStateException 如果 Rot90Op 尚未添加到此 ImageProcessor

public sync void updateNumberOfRotations (int k, int preventrence)

更新此 ImageProcessoroccurrence 指定的 Rot90Op 的旋转次数。

警告:此方法不是线程安全的。必须通过额外的同步防止更新旋转次数和处理图像(使用 SequentialProcessor.process(T)),以免进行并发访问。

参数
k 旋转次数
ImageProcessor 中特定 Rot90Op 的索引。例如,如果需要更新第二个 Rot90Op,则应将 occurrence 设置为 1。
抛出
IndexOutOfBoundsException 如果 occurrence 为负数或不小于此 ImageProcessor 中的 Rot90Op 的数量
IllegalStateException 如果 Rot90Op 尚未添加到此 ImageProcessor