{"id":17788233,"url":"https://github.com/mpizenberg/rust_mls","last_synced_at":"2025-03-16T09:32:27.696Z","repository":{"id":41874710,"uuid":"408879660","full_name":"mpizenberg/rust_mls","owner":"mpizenberg","description":"Image Deformation Using Moving Least Squares (Schaefer 2006) in Rust","archived":false,"fork":false,"pushed_at":"2022-04-25T09:32:42.000Z","size":69,"stargazers_count":12,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-10-07T03:43:54.479Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mpizenberg.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-09-21T15:44:08.000Z","updated_at":"2024-03-13T05:36:53.000Z","dependencies_parsed_at":"2022-07-28T20:38:54.710Z","dependency_job_id":null,"html_url":"https://github.com/mpizenberg/rust_mls","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mpizenberg%2Frust_mls","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mpizenberg%2Frust_mls/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mpizenberg%2Frust_mls/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mpizenberg%2Frust_mls/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mpizenberg","download_url":"https://codeload.github.com/mpizenberg/rust_mls/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":221661483,"owners_count":16859531,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-27T10:18:06.413Z","updated_at":"2024-10-27T10:18:06.972Z","avatar_url":"https://github.com/mpizenberg.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Image Deformation Using Moving Least Squares\n\nRust implementation of the paper [\"Image Deformation Using Moving Least Squares\", Schaefer 2006][pdf].\n\n![mls demo output][img]\n\n[pdf]: https://people.engr.tamu.edu/schaefer/research/mls.pdf\n[img]: https://mpizenberg.github.io/resources/moving-least-squares/mls-demo.jpg\n\nThis repository contains the MLS warping code inside `moving-least-squares/`, an application to image warping inside `moving-least-squaers-image/` as well as a demo with example usage producing the above figure inside the `moving-least-squares-demo/` directory.\nTo run the demo:\n\n```sh\ncd moving-least-squares-demo/\ncargo run --release\n```\n\nThe optional `rayon` feature enables parallel iterators for the generation of the warped image.\n```sh\ncargo run --release --features rayon\n```\n\nHere is what using the library looks like:\n\n```rust\n// Open an image from disk.\nlet img = image::open(\"data/woody.jpg\")?.into_rgb8();\n\n// Define the source control points.\nlet controls_src: \u0026[(f32, f32)] = \u0026[\n    (20.0, 160.0),\n    ...\n    (250.0, 369.0),\n];\n\n// Define the destination control points.\nlet controls_dst: \u0026[(f32, f32)] = \u0026[\n    (20.0, 250.0),\n    ...\n    (250.0, 369.0),\n];\n\n// Create new warped image.\nlet warped_img_affine =\n    mls_image::reverse_dense(\u0026img, controls_src, controls_dst, mls::deform_affine);\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmpizenberg%2Frust_mls","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmpizenberg%2Frust_mls","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmpizenberg%2Frust_mls/lists"}