2 个版本
0.1.1 | 2022年4月25日 |
---|---|
0.1.0 | 2021年10月8日 |
#2210 in 算法
30KB
581 行
使用移动最小二乘法进行图像变形
Rust 对论文"使用移动最小二乘法进行图像变形",Schaefer 2006 的实现。
可选的 rayon
功能启用并行迭代器以生成变形图像。
以下是如何使用库的示例
// Open an image from disk.
let img = image::open("data/woody.jpg")?.into_rgb8();
// Define the source control points.
let controls_src: &[(f32, f32)] = &[
(20.0, 160.0),
...
(250.0, 369.0),
];
// Define the destination control points.
let controls_dst: &[(f32, f32)] = &[
(20.0, 250.0),
...
(250.0, 369.0),
];
// Create new warped image.
let warped_img_affine =
mls_image::reverse_dense(&img, controls_src, controls_dst, mls::deform_affine);
lib.rs
:
使用 MLS 算法计算变形图像的函数。提供了两个变形函数:
- 密集变形,其中对每个像素进行变形计算;
- 稀疏变形,只在稀疏网格上计算,其他像素的位置通过插值得到。
依赖项
~10MB
~36K SLoC