Julia:使用 Compose 模块进行仿射变换

Ala*_*ain 5 julia

是否可以使用Compose.jl通过矩阵转换图像(如下所示)?如果是这样,你能提供一个简单的例子吗?

我知道方法中的rotation关键字参数Compose.context,但我想知道一般仿射变换是否有类似的东西。谢谢!

剪切变换

Ben*_*ier 1

您可以使用Shear。例如,您可以转换

在此输入图像描述

来自教程(下面的代码)

julia> composition = compose(context(),
               (context(units=UnitBox(0, 0, 1000, 1000)),
                polygon([(0, 1000), (500, 1000), (500, 0)]),
                fill("tomato")),
               (context(),
                polygon([(1, 1), (0.5, 1), (0.5, 0)]),
                fill("bisque")))
Run Code Online (Sandbox Code Playgroud)

并剪切它

julia> composition_sheared = compose(context(shear=Shear(0.3,0.0,0.5,1.0)),
               (context(units=UnitBox(0, 0, 1000, 1000)),
                polygon([(0, 1000), (500, 1000), (500, 0)]),
                fill("tomato")),
               (context(),
                polygon([(1, 1), (0.5, 1), (0.5, 0)]),
                fill("bisque")))
Run Code Online (Sandbox Code Playgroud)

获得

在此输入图像描述