11-01-2011 10:22 AM
Hi all,
I have a code which will take picture from a webcam and will save them. What I want to do is to average these images (pixel by pixel) to get higher SNR.(or lets say resolution). Can you please help me how can I do that? I have also attached my labview file to this message.
Many thanks in advance,
Ali
11-01-2011 11:29 AM - edited 11-01-2011 11:30 AM
First let's get some terminology straight. Resolution is something very different from SNR. Resolution (in your case) is the number of pixels per image and is set in hardware and there is nothing you can do about it in software sort of some very complex dithering scheme. SNR on the other hand is a measure of how much noise is in the image and that can be addressed in software using a variety of filters - which is all a running average really is, a low pass filter.
I am not that familier with the imaging drivers at this point but there should be a function that does what you need.
If not you can create one yourself. One way would be to convert the image to a 2D array of pixel values and do the average from that.
Obviously, for any sort of time averaging to work the camera mount has to be absolutely rock solid.
Mike...
11-01-2011 12:32 PM
Dear Mike,
Many thanks for your time and kindness to reply. What I meant by saying resolution is not the same as your definition, which is used for images as you explained. Resolution in circuit desing (specificly analog to digital converters) is directly related to signal to noise ratio, and is defined in bits. the relations is almost SNR(dB)=6*N which n is the resolution or number of bits you get. (because the minimum value you can get is limited to the noise level of your circuit).
I also think that there should be a function to do this the averaging for images but I couldn't find it. So as you said if no one helped me to find this function I will go for the second solution which is averaging the matrix of images as you also suggest.
Ali..
11-22-2011 04:53 AM
Hello,
I don't know that you still have your problem but I have some links for you which will be useful for you. I hear it from you.
http://zone.ni.com/devzone/cda/tut/p/id/11342
http://zone.ni.com/devzone/cda/tut/p/id/3295
http://forums.ni.com/t5/Dynamic-Signal-Acquisition/SNR-measurement-VI/m-p/224168?requireLogin=False
Beside you can use the interpolate functions in labview which are present in Vision development toolkits. I found the below links which are about that.
http://force.natinst.com:8000/pls/nic3/niae_screenpop.main?p_incident_number=920971
http://force.natinst.com:8000/pls/nic3/niae_screenpop.main?p_incident_number=7199937
http://force.natinst.com:8000/pls/ebs/niae_screenpop.main?p_incident_number=1052746
Good luck and hope that you can go further.
Regards,