vb.net - Images appear "washed out" based on background color, using EMGU Camera library -


i'm using emgu cv .net library. noticed when take pictures of color, colors "washed out" if background dark(ish). general rule of thumb i've found that, darker background is, more washed out colors are.

here how i'm retrieving image camera emgu.

dim imgfeed bitmap = mcamera.retrievebgrframe.tobitmap 

in images below (cropped out of background on both), left image on dry white cement , right image on wet white cement. can see "washed out" color on first tag, bright orange duct tape.

colors on dry white cement colors on wet white cement

here image, taken on black pavement in sun, in reality darker white cement, appears similar in color background in wet cement image above.

gold on pavement

is there sort of auto-balancing that's occurring in emgu library? if so, can stop happening? need see colors more background. i've read _equalizehist() , implemented it, did not me see colors more clearly; adding contrast image didn't because colors close white.

update

after reading spark's answer, found setcaptureproperty() method. see can disable auto exposure property setting value 0 shown below.

mcamera.setcaptureproperty(cvenum.cap_prop.cv_cap_prop_auto_exposure, 0.0) 

sadly though, particular camera i'm using, looks driver not support changing property.

this nothing algorithm. behavior of auto exposure (aec) algorithm running inside camera chip. try disabling auto exposure control of camera , reduce manual exposure level.

little theory: of aec algorithm works full frame weighted method. in sample showed white washed case, black background occupies more portion of image, make aec algorithm assume image dark , hence increase exposure level internally.


Comments

Popular posts from this blog

html - Outlook 2010 Anchor (url/address/link) -

javascript - Why does running this loop 9 times take 100x longer than running it 8 times? -

Getting gateway time-out Rails app with Nginx + Puma running on Digital Ocean -