空间转换怎么操作,什么软件能做到空间变换

首页 > 经验 > 作者:YD1662022-11-01 19:58:12

图1-25 鹦鹉图像的对数变换

② 幂律变换。幂律变换用作图像的γ校正。下面一行代码说明了如何使用point()函数进行幂律变换,其中γ=0.6:

im_g.point(lambda x: 255*(x/255)**0.6).show()

图1-26显示了运行上述代码生成的鹦鹉的幂律变换图像。

空间转换怎么操作,什么软件能做到空间变换(13)

图1-26 鹦鹉图像的幂律变换

(6)一些几何变换。本节中将讨论另一组变换,这些变换是通过将适当的矩阵(通常用齐次坐标表示)与图像矩阵相乘来完成的。由于这些变换会改变图像的几何方向,因此称这些变换为几何变换。

① 镜像图像。可以使用transpose()函数和水平或垂直镜像图像,代码如下所示:

im.transpose(Image.FLIP_LEFT_RIGHT).show() # reflect about the vertical axis

运行上述代码,得到图1-27所示的鹦鹉图像的镜像。

空间转换怎么操作,什么软件能做到空间变换(14)

图1-27 鹦鹉图像的镜像

② 旋转图像。可以使用rotate()函数将图像旋转一个角度(以度为单位),代码如下所示:

im_45 = im.rotate(45) #rotate the image by 45 degrees im_45.show() #show the retated image

运行上述代码,鹦鹉图像的旋转变换如图1-28所示。

空间转换怎么操作,什么软件能做到空间变换(15)

图1-28 鹦鹉图像的旋转变换

③ 在图像上应用仿射变换。二维仿射变换矩阵T可以应用于图像的每个像素(在齐次坐标中),以进行仿射变换,这种变换通常通过反向映射(扭曲)来实现。

如下代码所示的是用shear(剪切)变换矩阵变换输入图像时得到的输出图像。transform()函数中的数据参数是一个六元组(abcdef),其中包含来自仿射变换矩阵(affine transform matrix)的前两行。对于输出图像中的每个像素(xy),新值取自输入图像中的位置(ax by cdx ey f),该位置四舍五入为最接近的像素。transform()函数可用于缩放、平移、旋转和剪切原始图像。

im = Image.open("../images/parrot.png") im.transform((int(1.4*im.width), im.height), Image.AFFINE, data=(1,-0.5,0,0,1,0)).show() # shear

运行上述代码,所输出的剪切变换图像如图1-29所示。

空间转换怎么操作,什么软件能做到空间变换(16)

上一页12345下一页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.