JuliaImages / JuliaImages/ImageFiltering.jl

Optimized Median Filter

Open
#222 4 comments 3 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Julia
Stars
104
Forks
52
PR merge metrics
No merged PRs in 30d

Description

I have an implementation of median filter based on A Fast Two-Dimensional Median Filtering Algorithm. The algorithm scales very well with window size. Though the paper desribes a method specifically for 2-D images and median filter, it can easily be extended to work with N-D images and any percentile filter e.g, minima.

Comparison with mapwindow for 256x256 grayscale N0f8 image -

window size time for proposed method (ms) time for mapwindow (ms)
(3,3) 3.81 14.27
(5,5) 4.30 36.02
(7,7) 4.86 71.21
(11,11) 6.07 183.70
(21,21) 9.07 736.39

However, the algorithm only works for image types with discrete pixel values. It also doesn't scale well with increased precision of pixel values as the histogram size increases exponentially.

Comparison with mapwindow for 256x256 grayscale N0f16 image -

window size time for proposed method (ms) time for mapwindow (ms)
(3,3) 97.60 14.20
(5,5) 75.05 36.25
(7,7) 67.52 71.70
(11,11) 59.60 188.72
(21,21) 52.41 743.58

Can we use this median filter in Images.jl specifically for N0f8 images? I would be happy to submit a pull request. My code is available here.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the linked implementation and the paper, then compare its behavior with mapwindow for N0f8 images. Check how median and percentile filters are exposed in ImageFiltering.jl and determine the integration point. Done means a supported N0f8 median filter with results matching the proposed performance advantage.

Written by the indexing model from the issue text.

Assessment

Tech stack
julia
Domain
computer-vision, performance
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.