Open timholy opened 3 years ago
I've also thought about this too. Take ROF model as an instance, it finds a balance between over-smooth and noisy results. This raises the same question whether ROF
should fall into the scope of ImageSmooth.jl
Because it can introduce circular dependencies, my own opinion is to only allow convenient functions if the backends are in a "strictly" lower-level package. ImageFiltering
, ImageBase
can be considered as lower-level packages because the functions they provide are more fundamental utilities, while ImageNoise
is considered as the same level as ImageSmooth
because they target to implement concrete application-oriented algorithms.
So I would like to have
LinearBlur
that calls imfilter
internally. I'm not sure if gaussian
kernel should be the default, however.ROF
demo to explain its usage in image smoothWith https://github.com/JuliaImages/ImageBase.jl/pull/24#pullrequestreview-781384529 and https://github.com/JuliaImages/ImageFiltering.jl/pull/233 in mind, we might want to move the solver for L0Smooth to ImageFiltering, and then rewrap it here.
@timholy Does this sound good to you? I'm not very sure if it is a good direction to put model-related solvers to ImageFiltering.jl
I am also interested in introducing model based solvers in ImageSmooth.jl like mentioned here: https://www.mia.uni-saarland.de/weickert/Papers/book.pdf and study those utilizing SciML solvers. What's a good first step to take?
I'm quite excited to see this package, nice work @JKay0327 and @johnnychen94.
I'm curious about the right way to handle the comparison to smoothing operations like Gaussian blur. There seem to be at least two options:
LinearBlur(σ...)
algorithm here that is just a convenience method toimfilter
with aKernelFactors.gaussian
kernelI'd be happy to make a PR at some point, but I thought it would be best to hear which of these you think makes more sense. I'd be happy with either outcome.