Median Filter

medianFiltered

Introduction

Given an image, we’ll update each pixel intensity by

Well, we can compute median filtered image by sequentially processing each pixel of image, I. But that’s gonna take a lot of time for images with higher resolution and/ or high order of filtering value.

So, we’ll rather go for another solution - compute concurrently.

Now concurrent processing can be done either by using explicit thread(s) for each job/ thread pool by scheduling submitted jobs.

But I’d like to choose [ii]. Here’s why ?

Current median filter implementation based on choice [ii].

Usage

import in.itzmeanjan.filterit.ImportExportImage;
import in.itzmeanjan.filterit.filter.MedianFilter;


public class Main{

	public static void main(String [] args){
		System.out.println(
            ImportExportImage.exportImage(
                new MedianFilter().filter("sea.jpg", 1), 
                "medianFiltered.jpg"));
	}

}

Results

Order-0 image is original one.

Order Image
0 sample_image
1 order_1_MedianFiltered
2 order_2_MedianFiltered
3 order_3_MedianFiltered
4 order_4_MedianFiltered
5 order_5_MedianFiltered