Here I will write, what I need to be sure that I can find again, and far more which I probarbly don't need to find again :)

Sunday, October 7, 2007

Fast median image


While reading a paper about 3D object reconstruction, the authors mention that median images would be good to surpress camera noise... They state that thre downside of mediam images are that they are slow to calculate.

I would say... not soo. The update pr. pixel can be made as a O(log(n) ) problem.
if we treat every pixel value as a sorted lost, insertion can ( as far as i remember, be given the complextiy as stated), the rest is straight forward. The reading of a pixel value will be a table lookup -> resulting in a O(1) complexity.

The following defines the interface as I think it shall be.

class MedianImage {
  • MedianImage( width, height, filterdepth )
  • void Accumulate( x, y, value )
  • datatype Get(x,y)
  • datatype AccumulateAndGet( x, y, value )

Another possible interesting thing to look at would be the pixelwise variation, a very crude measure of camera noise could be made like this, furthermore, it would be possible to use this information as a simple activity localization.

class StatisticalMedianImage : MedianImage {
  • datatype GetVariance( x, y )

One yet undefined thing is what data we choose to throw away when adding pixel values to a full buffered pixel, I propose throwing away the pixel whit the longest distance to the median of that pixel.

I will implement this as soon as possible. now I will sleep.


Anonymous said...

Well your article helped me altogether much in my college assignment. Hats high to you dispatch, will look audacious for the duration of more cognate articles in a jiffy as its united of my pet subject-matter to read.

Anonymous said...

Sergio, and pigs fly :P