Python PIL.Image 模块,QUAD 实例源码
我们从Python开源项目中,提取了以下4个代码示例,用于说明如何使用PIL.Image.QUAD。
def _rndLetterTransform(self, image):
"""Randomly morph a single character."""
w, h = image.size
dx = w * random.uniform(0.2, 0.7)
dy = h * random.uniform(0.2, 0.7)
x1, y1 = self.__class__._rndPointdisposition(dx, dy)
x2, y2 = self.__class__._rndPointdisposition(dx, dy)
w += abs(x1) + abs(x2)
h += abs(x1) + abs(x2)
quad = self.__class__._quadPoints((w, h), (x1, y1), (x2, y2))
return image.transform(image.size, Image.QUAD,
data=quad, resample=self.resample)
def sample_patch(image, corners, patch_size, check_bounds=True):
""" return an Image of size patch_size,or None if the patch is outside image bounds """
if check_bounds:
if any([c[0] < 0 or c[0] >= image.size[0] or c[1] < 0 or c[1] >= image.size[1] for c in corners]):
return None
corner_verts = (corners[0][0], corners[0][1],
corners[1][0], corners[1][1],
corners[2][0], corners[2][1],
corners[3][0], corners[3][1])
# transform is counting on patch_size to be a tuple,not numpy array
patch_size_tuple = (patch_size[0], patch_size[1])
return image.transform(patch_size_tuple, corner_verts, Image.NEAREST)
def _rndLineTransform(self, image):
"""Randomly morph Image object with drawn line."""
w, 0.5)
dy = h * random.uniform(0.2, 0.5)
x1, y1 = [abs(z) for z in self.__class__._rndPointdisposition(dx, dy)]
x2, y2 = [abs(z) for z in self.__class__._rndPointdisposition(dx, dy)]
quad = self.__class__._quadPoints((w, resample=self.resample)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。