5 ms·
Show HN: Deconvolution – a Rust image deconvolution and restoration crate
I've been working on deconvolution, a comprehensive Rust image deconvolution and restoration library. Deconvolution implements 28 different image deconvolution/restoration methods which range from practical blur removal techniques to research-grade scientific imaging algorithms.
Features:
- Top-level functions use image::DynamicImage and return images
- Inverse filters, Wiener, Richardson-Lucy, constrained, proximal, Krylov, MLE restoration
- Blind Richardson-Lucy, blind maximum likelihood, parametric PSF estimation
- Kernel2D, Kernel3D, Transfer2D, Transfer3D, Blur2D/Blur3D
- Gaussian, motion, defocus, microscopy models, support utilities, PSF/OTF conversion
- Edge tapering, apodization, range normalization, NSR estimation
- Deterministic blur, noise, synthetic fixture generation
- ndarray support for 2D image arrays and 3D volume
this project is a WIP, of course:)
- esafak 3mo agoNice work. Old skool methods at this point. You could add some neural methods but then you'd lose any performance benefits of Rust and might as well use the richer Python ecosystem.
- srean 3mo agoI am a little wary of the new school denoisers. https://news.ycombinator.com/item?id=48263398 https://news.ycombinator.com/item?id=48263398 https://news.ycombinator.com/item?id=48258915 https://news.ycombinator.com/item?id=48258915
- esafak 3mo agoYou raise a good point. I think a good UX would be to give the user more control over fidelity; locally, and globally.
- dj_axl 3mo agoAny denoising? https://github.com/Twinklebear/oidn-rs https://github.com/Twinklebear/oidn-rs
- rmi0 3mo agoThere are some noise-handling pieces, but no public denoising API. E.g.: Wiener/unsupervised Wiener configs, NSR estimation, regularization, and simulation helpers for Gaussian/Poisson/readout noise. The crate is focused on deconvolution.