Open timholy opened 4 years ago
~The last one seems really difficult and could lead to a lot of fruitless effort. For it to be successful I think we'd need active participation from the wider non JuliaImages community.~ Nevermind, I didn't think about who I was talking to. JuliaArrays sounds like the perfect place for this.
It's probably not that hard. Aside from function renaming (imfilter->??
), it's probably just a question of splitting anything that is T<:Colorant
out from everything else. ImageFiltering might become less than 50 lines of code, while @reexport
ing ArrayFiltering. I also have authority to transfer to JuliaArrays, assuming that's a more natural place for it.
There might be low-hanging fruit in using LoopVectorization.jl to speed up image filtering. Or it might hang high, but I know there's fruit out there.
Yes, I have my eye on LoopVectorization, it's an awesome package. Pretty brittle at the moment, but I expect that to change (and perhaps whoever digs into this can help it mature).
* Look into whether the boundary conditions can be implemented more generally as views, perhaps moving more functionality to [PaddedViews](https://github.com/JuliaArrays/PaddedViews.jl).
A quick clarification, is the idea to replace BorderArray
?
Yes, the idea is to break ImageFiltering into multiple generic standalone small packages(for bordering, scheduling, mapwindow, filter, etc), and evolve it to a glue package.
People are sometimes confused about the image prefix because it works out pretty well for common arrays, see also https://github.com/JuliaImages/ImageFiltering.jl/issues/42 for some discussion about this.
Though I would point out that to split into multiple packages we don't necessarily need to split it into multiple repositories. I am using a single repository for SnoopCompileCore & SnoopCompile (two packages that can be separately installed but really designed to work together), and after a few hiccups that's working reasonably well.
There seem to be a number of people who are interested in making improvements in this package. To facilitate their explorations, I thought I'd list some things I know need fixing:
see #152#158)Be aware of https://github.com/JuliaArrays/OffsetArrays.jl/pull/90 which should arrive fairly soon.ArrayFiltering
, keeping anything color-related inImageFiltering
(which would become a thin wrapper aroundArrayFiltering
). Lots of people who don't do image processing are turned off by the "Image" in the name; it's not rational, but it's been brought up again and again, so it's time to stop wishing others would change and just change ourselves.