Search This Blog

Sunday, July 4, 2010

AForge.NET color filter C#

We are going to filter the colors of the video feed from a webcam. We will be using AForge.NET image processing framework for this and C#. You can check my previous posts for some basic video capture from webcam.

We have some steps as follows…

  1. Acquire image from webcam (check previous posts - click here )
  2. Create a color filter
  3. Apply filter

 

Step 1: Check previous posts - click here

Step 2: Create a color filter

First a little modification to the UI

image_thumb33

Then the code for the track bar.

image_thumb2

Now as we move the slider, the variable for the RGB has to change accordingly. We have given the incremental/decremental value of 3. So when we move the slider, the value of RGB will change +3 or –3. You can change to required value by changing the TickFrequency value.

image_thumb4

The main filter part. Please check this reference link/documentation ( http://www.aforgenet.com/framework/docs/html/35bd90e3-4e35-8f5f-e255-26c5d8d4b927.htm ). I have done the same with a  little UI.

image_thumb41

I am changing the value from 0 to the value in the track bar. You can add one more track bar for the lower value and can get a very good results.

Here is the reference and source for this step 2

Links : http://www.aforgenet.com/framework/docs/html/35bd90e3-4e35-8f5f-e255-26c5d8d4b927.htm

Step 3: Apply filter

image_thumb27

Now run it !!!!!!!!!!!!!!!!!!!!!!!

It works !!!

Here are my results

The Original Screen (Before Processing)

Note the trackbar at full. Move your trackbar to maximum initially. Else you will not see anything. Because all the filter will be at 0. Which means block everything.

image_thumb43

After applying value of red filter (look at the red trackbar)

image_thumb45

Wow, the red is completely removed.

Now lets try Blue. (bring back red trackbar to maximum)

image_thumb48

Light source is natural light (sun light) through window.

Same blue filter with indoor lightings. Yes. Lights do affect the result a lot.

image_thumb50

Green filter test..

image_thumb52
Ok, but not impressive. Because the lower limit of the filter is 0. If we move both upper and lower, we’ll get impressive results.

 

------------------------------------------- Using Lower Value for filter -----------------------------------------------------------------------

I just modified the UI so that I can change the lower value of the filter too. And I started playing to do some object isolation. Pretty nice. Here are some screen shots. Note the slide bar too.

image_thumb55

Isolated the orange cup !!!!!!!!!!!!!!!1 success

image_thumb58



Note :

  • Lightings play a major part in image processing. We need to add more things in the future to make it work under any lightings.
  • Camera also plays a major role. Due to some reasons, my camera shows green color in the background. Using good quality cameras, you can do miracles.

have a good day.
~Prem


Webcam using AForge.NET (Part II)

 

Now to use webcam and I will go with the USB camera. I know the name of the camera (from the tutorial Part I, pop up box) as “USB2.0 Camera” and it is index as number 4 (from 0). You need to draw a picture box and a button to start the camera in the design view like this

image_thumb5

Double click on the “Start Camera” button and we go to the code side. I am posting the code with comments. This will probably help you if you read the code.

image_thumb10

And it works !!!!!!!!!!!!!!!!!!!!!!!!!

 Ok, here is another video from a different site. I am not the author. But just a crash programming.

C# Tutorial - Getting Images from Webcam using Aforge from shivam on Vimeo.

Here is the link to the source of this video and author http://vimeo.com/7526663

 

Up coming tutorials will be on image processing. I will be posting as I am learning.

 

~Prem