矩阵描述平面的仿射变换。

affine的Python项目详细描述


描述平面仿射变换的矩阵。

https://travis-ci.org/sgillies/affine.svg?branch=masterhttps://coveralls.io/repos/sgillies/affine/badge.svg

仿射包是由casey-duncan的平面包导出的。请看 affine/__init__.py中的版权声明。

用法

二元变换的3x3增广仿射变换矩阵 尺寸如下图所示。

矩阵可以通过将值a, b, c, d, e, f传递给 affine.Affine构造函数或使用其identity()translation()scale()shear()rotation()类方法。

>>> fromaffineimportAffine>>> Affine.identity()Affine(1.0, 0.0, 0.0,
       0.0, 1.0, 0.0)
>>> Affine.translation(1.0,5.0)Affine(1.0, 0.0, 1.0,
       0.0, 1.0, 5.0)
>>> Affine.scale(2.0)Affine(2.0, 0.0, 0.0,
       0.0, 2.0, 0.0)
>>> Affine.shear(45.0,45.0)# decimal degreesAffine(1.0, 0.9999999999999999, 0.0,
       0.9999999999999999, 1.0, 0.0)
>>> Affine.rotation(45.0)# decimal degreesAffine(0.7071067811865476, -0.7071067811865475, 0.0,
       0.7071067811865475, 0.7071067811865476, 0.0)

这些矩阵可以应用于(x, y)元组以获得转换的 坐标(x', y')

>>> Affine.translation(1.0,5.0)*(1.0,1.0)(2.0, 6.0)
>>> Affine.rotation(45.0)*(1.0,1.0)(1.1102230246251565e-16, 1.414213562373095)

它们也可以相乘在一起以组合变换。

>>> Affine.translation(1.0,5.0)*Affine.rotation(45.0)Affine(0.7071067811865476, -0.7071067811865475, 1.0,
       0.7071067811865475, 0.7071067811865476, 5.0)

与gis数据包一起使用

地理参考光栅数据集使用仿射变换从图像映射 坐标到世界坐标。affine.Affine.from_gdal()类 方法帮助转换GDAL GeoTransform, 6个数字的序列,其中第一个和第四个是X和Y偏移 第二个和第六个是x和y像素大小。

使用gdal数据集转换矩阵,世界坐标(x, y) 对应于从 原点很容易计算。

>>> geotransform=(-237481.5,425.0,0.0,237536.4,0.0,-425.0)>>> fwd=Affine.from_gdal(*geotransform)>>> col,row=0,100>>> fwd*(col,row)(-237481.5, 195036.4)

使用~运算符获得反向转换。

>>> rev=~fwd>>> rev*fwd*(col,row)(0.0, 99.99999999999999)

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何在构造函数外部添加鼠标侦听器   java如何使用比较器对列表进行排序以正确排序空值?   javajavax。由于javax,邮件“535.7.3身份验证失败”。邮件升级(v1.3.1至v1.5.2)   java将arraylist流到固定的二维数组中并打印?   RecyclerView适配器上的java上下文   java如何为此Twitter API为KafkaProducer建立连接   java Spring安全性重写WebSecurity配置适配器的配置(AuthenticationManagerBuilder)是否会影响全局应用程序?   线程“awteventque0”NullPointerException中的java异常   if条件中的null值和null指针异常java   java树集<Object>允许相同类型的多个对象   java定义类;我认不出   字符串java replaceAll()   JAVAutil。scanner(Java)读取文件时如何跳过空格?   java在swing中关闭flash屏幕   java在Wildfly 16中的应用程序中加载pk12文件   有没有工具可以自动生成屏幕抓取的Java代码   创建意图时,java方法getParcelableExtra()返回null   将数据从java传递到jsp   java Android Studio |永久保存布局