图像工具

图像增强的模型。

示例用法:

from singa import image_tool

tool = image_tool.ImageTool()
imgs = tool.load('input.png').resize_by_list([112]).crop5((96, 96), 5).enhance().flip().get()
for idx, img in enumerate(imgs):
    img.save('%d.png' % idx)

class singa.image_tool.ImageTool

一个图像增强工具。 对于inplace = True的操作,返回的值是ImageTool实例,用于链接多个操作; 否则,将返回预处理过的图像。 对于具有可数预处理情况的操作,可以设置参数num_case来决定要应用的预处理情况的数量。 通常,训练阶段设置为1,测试阶段设置为最大。


color_cast(offset=20, inplace=True)

对每个通道加上一个随机偏移值[-offset, offset]。

参数:

  • offset – 偏移, >0 and <255
  • inplace – 对原图对象操作或返回一张新图

crop3(patch, num_case=1, inplace=True)

对给定位置,截取可能的最大方框并缩放到给定尺寸。 按照图像尺寸,截取位置可以是(左, 中, 右)或(上, 中, 下)之一。

参数:

  • patch (tuple) – 输出图像的高和宽
  • num_case – 情况数目, 必须在[1,3]
  • inplace – 对原图对象操作或返回一张新图

crop5(patch, num_case=1, inplace=True)

截取位置可以是[左上, 左下, 右上, 右下, 中间]。

参数:

  • patch (tuple) – 输出图像的高和宽
  • num_case – 情况数目, 必须在[1,5]
  • inplace – 对原图对象操作或返回一张新图

crop8(patch, num_case=1, inplace=True)

这是patch_5和patch_and_scale的并集。 你可以依照这个例子取任何情况的并集。


enhance(scale=0.2, inplace=True)

对色度、对比度、亮度和锐度采用随机增强。

参数:

  • scale (float) – 增强范围 [1-scale, 1+scale]
  • inplace – 对原图对象操作或返回一张新图

flip(num_case=1, inplace=True)

随机向左或向右翻转图像。

参数:

  • num_case – 情况数目,必须是 {1,2}; 如果是2,则会返回原图以及翻转的图像。
  • inplace – 对原图对象操作或返回一张新图

num_augmentation()

返回每张图像被增强后的总数


random_crop(patch, inplace=True)

根据随机偏移截取指定大小的图像

参数:

  • patch (tuple) – 截取图像块的高和宽
  • inplace (Boolean) – 如果为真,直接用新图像块替换原始图像内容;否则返回新图像块。

resize_by_list(size_list, num_case=1, inplace=True)

参数:

  • num_case – 缩放操作数目, 必须不超过size_list的长度
  • inplace – 对原图对象操作或返回一张新图

resize_by_range(rng, inplace=True)

参数:

  • rng – 元组 (起始值, 结束值), 包括起始值但不包括结束值
  • inplace – 对原图对象操作或返回一张新图

rotate_by_list(angle_list, num_case=1, inplace=True)

参数:

  • num_case – 旋转操作数目, 必须不超过angle_list的长度
  • inplace – 对原图对象操作或返回一张新图

rotate_by_range(rng, inplace=True)

参数:

  • rng – 表示旋转角度范围的元组 (起始值, 结束值), 包括起始值但不包括结束值
  • inplace – 对原图对象操作或返回一张新图

singa.image_tool.color_cast(img, offset)

对每个通道加上一个随机偏移值[-offset, offset]。


singa.image_tool.crop(img, patch, position)

截取给定位置和给定大小的图像块。

参数:

  • patch (tuple) – 宽,高
  • position (list(str)) – 左上,左下,右上,右下,中间

singa.image_tool.crop_and_resize(img, patch, position)

对给定位置,截取可能的最大方框并缩放到给定尺寸。

参数:

  • patch (tuple) – 宽,高
  • position (list(str)) – 左,中,右,上,中,下

singa.image_tool.enhance(img, scale)

对色度、对比度、亮度和锐度采用随机增强。

参数:

  • scale (float) – 增强范围 [1-scale, 1+scale]

singa.image_tool.load_img(path, grayscale=False)

从给定路径读取图像。


singa.image_tool.resize(img, small_size)

缩放图像使得最短边达到给定大小。