February 1st – 4th ,2007
Image Acquisition and Real Time Processing Techniques
Why Real-time Image Processing? <ul><li>Image processing is an important tool in many applications. </li></ul><ul><li>Prob...
Real-Time Image Processing <ul><li>Such Real-Time Image processing can be done on standalone hardware like DSP or ASIC. </...
Image Acquisition <ul><li>Image acquisition from the video capture devices connected to the computer, is an important task...
Problems with MATLAB <ul><li>Even though MATLAB is simple and robust ,it doesn’t have features for real-time image process...
<ul><li>Another approach being developing custom applications in languages like C, C++, VC++, VB, Java etc. </li></ul><ul>...
Different Libraries for image acquisition on Windows Platform <ul><li>DirectShow (part of the DirectX API) </li></ul><ul><...
Comparison of the Various approaches <ul><li>OpenCV and Vision SDK comprise of the High Level Functions. Where as the Dire...
Computer Graphic System DAC Video RAM Hardware Buffer Graphic Controller CPU Main Memory Mother Board Video Adapter
Filter <ul><li>A filter is a software component which does a particular task. </li></ul><ul><li>They have to comply with t...
General Architecture Media Source Source Filter Transform Filter Renderer Filter Destination
Tools Required <ul><li>Windows (2000 or later) </li></ul><ul><li>Visual Studio (6.0 or later) </li></ul><ul><li>DirectX SD...
OpenCV <ul><li>OpenCV is an opensource project supported by Intel. </li></ul><ul><li>It is a collection of C structures, f...
Some basic C Structures <ul><li>IplImage : </li></ul><ul><li>Every Image in OpenCV is an instantiation of a structure call...
Some basic Structures (cont..) <ul><li>Some other commonly  used structures are  </li></ul><ul><li>1)CvPoint { int x,int y...
Some basic Structures (cont..) <ul><li>CvArr  - > IplImage , CvMat </li></ul><ul><li>CvCapture </li></ul>
Some Important functions Initialization Functions <ul><li>cvNamedWindow(char*) </li></ul><ul><li>cvCreateImage </li></ul><...
Image Processing Functions <ul><li>cvCopy </li></ul><ul><li>cvFlip </li></ul><ul><li>cvCvtColor </li></ul><ul><li>cvNot </...
Memory Release functions <ul><li>cvReleaseImage </li></ul><ul><li>cvReleaseCapture </li></ul><ul><li>cvDestroyWindow </li>...
Program Steps <ul><li>Create Window </li></ul><ul><li>Create a capture stream </li></ul><ul><li>Grab a frame from the stre...
Sample Code <ul><li>CvCapture* cap = cvCaptureFromCAM(0); </li></ul><ul><li>cvNamedWindow(“Webcam”); </li></ul><ul><li>for...
<ul><li>THANK YOU </li></ul>
Upcoming SlideShare
Loading in...5
×

A Tutorial On Ip 2

1,664

Published on

Published in: Technology, Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,664
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
116
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "A Tutorial On Ip 2"

  1. 1. February 1st – 4th ,2007
  2. 2. Image Acquisition and Real Time Processing Techniques
  3. 3. Why Real-time Image Processing? <ul><li>Image processing is an important tool in many applications. </li></ul><ul><li>Problem is that one needs to acquire images and pre-process them before doing actual IP. </li></ul><ul><li>Sometimes it may be required that offline image processing is not possible i.e. one needs to proceed with real-time IP or even more, processing of the video itself. </li></ul>
  4. 4. Real-Time Image Processing <ul><li>Such Real-Time Image processing can be done on standalone hardware like DSP or ASIC. </li></ul><ul><li>Another approach being using a personal computer. </li></ul>
  5. 5. Image Acquisition <ul><li>Image acquisition from the video capture devices connected to the computer, is an important task in Real Time Image Processing applications. </li></ul><ul><li>Few approaches being, developing custom standalone applications or using software like MATLAB (image and video processing toolbox) etc. </li></ul>
  6. 6. Problems with MATLAB <ul><li>Even though MATLAB is simple and robust ,it doesn’t have features for real-time image processing (Even the latest image and video processing tool box doesn’t provide this feature), which renders it useless in this problem </li></ul>
  7. 7. <ul><li>Another approach being developing custom applications in languages like C, C++, VC++, VB, Java etc. </li></ul><ul><li>This languages don’t have capability to handle Images and they require different libraries to achieve these tasks. </li></ul>
  8. 8. Different Libraries for image acquisition on Windows Platform <ul><li>DirectShow (part of the DirectX API) </li></ul><ul><li>OpenCV </li></ul><ul><li>Vision SDK </li></ul><ul><li>Java Media Framework </li></ul>
  9. 9. Comparison of the Various approaches <ul><li>OpenCV and Vision SDK comprise of the High Level Functions. Where as the DirectX is a set of Low Level API, which directly interact with the hardware. </li></ul><ul><li>OpenCV and Vision SDK encapsulate the DirectX API. </li></ul>
  10. 10. Computer Graphic System DAC Video RAM Hardware Buffer Graphic Controller CPU Main Memory Mother Board Video Adapter
  11. 11. Filter <ul><li>A filter is a software component which does a particular task. </li></ul><ul><li>They have to comply with the COM specification. </li></ul><ul><li>They form the backbone of the DirectX library. </li></ul>
  12. 12. General Architecture Media Source Source Filter Transform Filter Renderer Filter Destination
  13. 13. Tools Required <ul><li>Windows (2000 or later) </li></ul><ul><li>Visual Studio (6.0 or later) </li></ul><ul><li>DirectX SDK (9.0 or later) </li></ul><ul><li>OpenCV (4.0 or later) </li></ul>
  14. 14. OpenCV <ul><li>OpenCV is an opensource project supported by Intel. </li></ul><ul><li>It is a collection of C structures, functions and C++ classes that contain implementation of algorithms of image processing and computer vision </li></ul>
  15. 15. Some basic C Structures <ul><li>IplImage : </li></ul><ul><li>Every Image in OpenCV is an instantiation of a structure called IplImage . </li></ul><ul><li>This structure consists of Image data in a 1-D array format. Others fields of this structure consist of data like width, height, no of channels etc. </li></ul>
  16. 16. Some basic Structures (cont..) <ul><li>Some other commonly used structures are </li></ul><ul><li>1)CvPoint { int x,int y} </li></ul><ul><li>2)CvSize {int width, int height } </li></ul><ul><li>3)CvRect {int x,y,width,height } </li></ul><ul><li>4)CvScalar { double val[4] } </li></ul><ul><li>5)CvMat </li></ul>
  17. 17. Some basic Structures (cont..) <ul><li>CvArr - > IplImage , CvMat </li></ul><ul><li>CvCapture </li></ul>
  18. 18. Some Important functions Initialization Functions <ul><li>cvNamedWindow(char*) </li></ul><ul><li>cvCreateImage </li></ul><ul><li>cvCaptureFromCAM(index) </li></ul>
  19. 19. Image Processing Functions <ul><li>cvCopy </li></ul><ul><li>cvFlip </li></ul><ul><li>cvCvtColor </li></ul><ul><li>cvNot </li></ul><ul><li>cvSmooth </li></ul><ul><li>cvZero </li></ul>
  20. 20. Memory Release functions <ul><li>cvReleaseImage </li></ul><ul><li>cvReleaseCapture </li></ul><ul><li>cvDestroyWindow </li></ul>
  21. 21. Program Steps <ul><li>Create Window </li></ul><ul><li>Create a capture stream </li></ul><ul><li>Grab a frame from the stream </li></ul><ul><li>Display frame on the screen </li></ul><ul><li>Release capture and Images </li></ul><ul><li>Destroy window </li></ul>
  22. 22. Sample Code <ul><li>CvCapture* cap = cvCaptureFromCAM(0); </li></ul><ul><li>cvNamedWindow(“Webcam”); </li></ul><ul><li>for(;;) </li></ul><ul><li>{ </li></ul><ul><li>IplImage* frame = cvQueryFrame(cap); </li></ul><ul><li>cvShowImage(“Webcam”,frame); </li></ul><ul><li>} </li></ul><ul><li>cvReleaseCapture(&cap); </li></ul><ul><li>cvDestroyWindow(“Webcam”); </li></ul>
  23. 23. <ul><li>THANK YOU </li></ul>
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×