Closed GoogleCodeExporter closed 8 years ago
I think I know what the problem.. My camera (Logitech Quick Communicate Deluxe)
uses "auto-light". (when
the scene too dark my webcam makes more light..). That's why every frames are
different!
But.. how can I disable this function in Linux? (My webcam uses the UVC driver)
Original comment by denis1...@gmail.com
on 5 Jul 2009 at 9:04
[deleted comment]
Is there any recommendations for webcamera settings? (contrast, brightness,
saturaion, etc..?)
I think my web cam has very bad image...
Original comment by denis1...@gmail.com
on 5 Jul 2009 at 11:26
My webcam shows me a strange fuzzy-effect when I set "saturation"-option to the
maximum:
http://rapidshare.de/files/47770677/capture2.avi.html
Original comment by denis1...@gmail.com
on 6 Jul 2009 at 1:06
Hi Denis,
thanks for posting here.
Unfortunately I'm firewalled right now so I don't have access to rapidshare.
So, your idea of subtracting is going to work, but not that greatly. You will
get
better results trying to average the background.
But your conclusion is really correct. The auto-light function will make it not
work
under varying combinations of light.
You should use an application like logitech's uvcdynctrl
(http://www.quickcamteam.net/software/libwebcam) to disable the Backlight
Compensation.
It's something like this:
[baggio@baggio ~]$ uvcdynctrl -c
Listing available controls for device video0:
Backlight Compensation
Sharpness
Power Line Frequency
Gamma
Hue
Saturation
Contrast
Brightness
You can get the value like:
[baggio@baggio ~]$ uvcdynctrl -g 'Backlight Compensation'
1
And then unset it like:
[baggio@baggio ~]$ uvcdynctrl -s 'Backlight Compensation' 0
And make sure it has worked:
[baggio@baggio ~]$ uvcdynctrl -g 'Backlight Compensation'
0
Lots of computer vision effects rely on not changing the backlight, but you can
try
to make your method robust to it.
I hope it's going to be ok with this setting.
Kind regards,
Daniel
Original comment by danielba...@gmail.com
on 6 Jul 2009 at 11:07
Here is the copy: http://www.youtube.com/watch?v=4tA6Vp5zgY8 (with HQ)
I can change those settings with the "gUVCView" program. I think my webcam has
very bad quality for
computer vision and for problem like mine :(
Original comment by denis1...@gmail.com
on 7 Jul 2009 at 12:00
Hum... well...
How are you subtracting the images (sorry for being blocked with rapidshare
here)...
Can you post this part?
There isn't much requirement for a perfect image to do subtraction. A low
quality
should work fine.
Original comment by danielba...@gmail.com
on 7 Jul 2009 at 12:17
[deleted comment]
I just do:
---------------------------------------
for( int i = 0; i < videoFrame->height; i++ ){
for( int j = 0; j < videoFrame->width; j++ ){
CvScalar c1, c2;
c1 = cvGetAt( bgWithoutFace, i, j );
c2 = cvGetAt( canvas, i, j );
Uint32 myPixel;
if ( ( c1.val[ 0 ] == c2.val[ 0 ] ) &&
( c1.val[ 1 ] == c2.val[ 1 ] ) &&
( c1.val[ 2 ] == c2.val[ 2 ] ) ) {
myPixel = ( ( int ) cvGetAt( backgroundImage, i, j ).val[ 2 ] << 16 ) |
( ( int ) cvGetAt( backgroundImage, i, j ).val
[ 1 ] << 8 ) |
( ( int ) cvGetAt( backgroundImage, i, j ).val
[ 0 ] );
} else {
myPixel = ( ( int ) cvGetAt( canvas, i, j ).val[ 2 ] << 16 ) |
( ( int ) cvGetAt( canvas, i, j ).val[ 1 ] << 8 ) |
( ( int ) cvGetAt( canvas, i, j ).val[ 0 ] );
}
putpixel( image, j, i, myPixel );
}
}
---------------------------------------
Original comment by denis1...@gmail.com
on 7 Jul 2009 at 9:39
Hum... try changing the order of the values RGB -> BGR, and make sure the size
of
myPixel is correct (is it RGBA?).
Good luck!
[]'s
Original comment by danielba...@gmail.com
on 8 Jul 2009 at 2:22
>> try changing the order of the values RGB -> BGR
but why it's so important? I just check a difference between two pixels... I
think the order it's not important
here... or not? :)
>> (is it RGBA?).
Hm I think it's RGB.. ("Bytes per pixel: 3")
Why did you ask me about RGBA?
Original comment by denis1...@gmail.com
on 8 Jul 2009 at 10:44
By the way there's my code: http://pastebin.ca/1488001
I meant.. there's your code :))) cause my attempts based on your
"background.tar.gz"-file.
Original comment by denis1...@gmail.com
on 8 Jul 2009 at 10:51
I add following:
--------------------------------
CvScalar c1, c2;
c1 = cvGetAt( bgWithoutFace, i, j );
c2 = cvGetAt( canvas, i, j );
int dSum = abs( c1.val[ 0 ] - c2.val[ 0 ] ) + abs( c1.val[ 1 ] - c2.val[ 1 ] )
+ abs( c1.val[ 2 ] - c2.val[ 2 ] );
if ( dSum < 30 ) {
...
--------------------------------
Now it works better.. But sometimes it shows holes in your body :)
Original comment by denis1...@gmail.com
on 8 Jul 2009 at 2:50
Great, you've done some progress... well, the software from OSX is not that
perfect
as well... I think we can get by with it...
Good work!
Original comment by danielba...@gmail.com
on 8 Jul 2009 at 11:33
I think the issue can be closed now, all right?
Original comment by danielba...@gmail.com
on 8 Jul 2009 at 11:39
>> Great, you've done some progress...
A little progress :D
Yes, I think the issue can be closed now!
Original comment by denis1...@gmail.com
on 9 Jul 2009 at 12:04
Great, thanks for sharing :)
Original comment by danielba...@gmail.com
on 9 Jul 2009 at 8:27
You're welcome :) I try to find more intresting things in OpenCV!
Original comment by denis1...@gmail.com
on 9 Jul 2009 at 9:07
Hi ,
I am new one with open cv work for image processing .
I am using MFC c++ and open cv for detecting the object boundry..for that i
first
need to find the difference between all frames of video . But i do't have any
idea for this ..
I googled it but i am getting more confuse ..
Please guide me with some source code .. that how can id find the difference
between all frames ..
Please help me its urgent,.
thanks
Original comment by rabiafy...@gmail.com
on 8 Jun 2011 at 9:01
Well, I'd point you to check the Motempl example that comes with openCV. You'll
get a good idea on how to get the difference between frames reading that code.
Best regards,
Daniel
Original comment by danielba...@gmail.com
on 9 Jun 2011 at 1:58
Original issue reported on code.google.com by
denis1...@gmail.com
on 5 Jul 2009 at 7:18Attachments: