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.
here image, taken on black pavement in sun, in reality darker white cement, appears similar in color background in wet cement image above.
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
Post a Comment