易于使用的多核仿射变换
affine-transform的Python项目详细描述
此项目探讨了如何将C++ 17和OpenMP组合起来编写一个 n维并行仿射的惊人紧凑实现 通过^{tt1}链接到python的转换$ 模块。
当这个项目还在开发中时,以下特性 支持:
- 线性和三次(无预滤波)插值
- 恒定边界
- 为任意维数据编译代码
- 通过OpenMP实现并行性
- 任意形状的输出数组,例如只允许提取转换的切片
简短示例用法
importnumpyasnpfromaffine_transformimporttransformfrommgenimportrotation_from_angleimportmatplotlib.pyplotasplt# Create a simple white square in an imageoriginal=np.zeros((601,401))original[100:300,100:300]=1# Rotate by 22.5° (around the centre of the square (200,200))# and shift +200 in x and +100 in ytransformed=transform(original,rotation_from_angle(np.pi/8),np.array([200,100]),origin=(200,200))