How to normalize an image color?

二次信任 提交于 2019-12-01 00:38:18

问题


In their paper describing Viola-Jones object detection framework (Robust Real-Time Face Detection by Viola and Jones), it is said:

All example sub-windows used for training were variance normalized to minimize the effect of different lighting conditions.

My question is "What kind of tool did they use to normalize the images?"

I'm NOT looking for the specific tool that Viola & Jones used but a similar one that produces almost the same output. I've been following a lot of haar-training tutorials(trying to detect a hand) but not yet able to output a good detector(xml).

I've tried contacting the authors, but still no response yet.


回答1:


One possible way is to apply plain and simple normalization assuming normal distribution to all elements.

First find the average (Mu) and standard deviation (S):

Mu = 1/N * Sum(a[i][j]) for each i,j 
S  =  sqrt(1/(N-1) *  Sum((a[i][j] - Mu)^2)) for each i,j
       (in here N is the number of pixels, 20*20 in the viola jones case)

From this, we can normalize the value of each pixel using standard normal distribution formula (by standardizing all values):

a'[i][j] = (a[i][j] - Mu) / S

Another method is vector normalization, which basically says:

  • Find the length of the vector: |a| = sqrt(sum (a[i][j]*a[i][j])) for each i,j
  • Assign: a'[i][j] = a[i][j] / |a|


来源:https://stackoverflow.com/questions/13835311/how-to-normalize-an-image-color

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!