0% found this document useful (0 votes)
174 views5 pages

OpenCV Tutorial 1 Chap No.1 and 2

This document is an OpenCV tutorial that introduces basic image and video loading and processing functions. It discusses installing OpenCV, displaying images and video, and performing simple transformations like Gaussian blurring, pyramid downsampling, and Canny edge detection. The tutorial provides code examples for loading and displaying an image, playing a video, applying a Gaussian blur, and using pyramid downsampling and Canny edge detection.

Uploaded by

Hassan Shafique
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
174 views5 pages

OpenCV Tutorial 1 Chap No.1 and 2

This document is an OpenCV tutorial that introduces basic image and video loading and processing functions. It discusses installing OpenCV, displaying images and video, and performing simple transformations like Gaussian blurring, pyramid downsampling, and Canny edge detection. The tutorial provides code examples for loading and displaying an image, playing a video, applying a Gaussian blur, and using pyramid downsampling and Canny edge detection.

Uploaded by

Hassan Shafique
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 5

6/1/2015

OpenCVTutorial1

OpenCVTutorial1Chapters1and2
Author:NoahKuntz(2008)
Contact:[email protected]
Keywords:OpenCV,computervision,imagemanipulaton,gaussianblur,avi

MyVisionTutorialsIndex
Thistutorialassumesthereader:
(1)HasabasicknowledgeofVisualC++
(2)Hassomefamiliaritywithcomputervisionconcepts
Therestofthetutorialispresentedasfollows:
Step1:InstallingOpenCV
Step2:DisplayingImagesandVideo
Step3:SimpleTransformations
FinalWords

ImportantNote!
Moreinformationonthetopicsofthesetutorialscanbefoundinthisbook:LearningOpenCV:ComputerVisionwiththeOpenCVLibrary

Step1:InstallingOpenCV
InstallMSVC++onwindowsandGCCorGLIBConLinux.
DownloadOpenCVfromsourceforge
Useopencvwinoropencvlindependingonyourplatformofchoice.
OptionallyyoumaypurchaseIntelIntegratedPerformancePrimitives(IPP)whichoptimizestheperformanceofOpenCV.IntelIPP
OptionallyupdateOpenCVusingthe"ConcurrentVersionsSystem,"withsoftwarelikeTortoiseCVS.
NowyoumustcreateaC++projectandlinkthecorrectfiles.Theseheadersshouldbelinked:
#include"C:\ProgramFiles\OpenCV\cv\include\cv.h"
#include"C:\ProgramFiles\OpenCV\ml\include\ml.h"
#include"C:\ProgramFiles\OpenCV\cxcore\include\cxcore.h"
#include"C:\ProgramFiles\OpenCV\cxcore\include\cxtypes.h"
#include"C:\ProgramFiles\OpenCV\otherlibs\highgui\highgui.h"

Linktocv.lib,ml.lib,cxcore.lib,andhighgui.libMakesuretochangetheenvironmentvariabletoPATH=C:\ProgramFiles\OpenCV\bin

Step2:DisplayingImagesandVideo

http://dasl.mem.drexel.edu/~noahKuntz/openCVTut1.html

1/5

6/1/2015

OpenCVTutorial1

AnimagedisplayedwithOpenCV
ThefirstthingwecandowithOpenCVissimplyaccessanimage.Thiscodewilldisplayatheimage"MGC.jpg"inawindow.cvLoadImage
loadstheimageintoanIplImage*variable.cvNamedWindowcreatesawindowandcvShowImagepaintstheimageonthewindow.Then
cvWaitKey(0)waitsforanykeytobepressedatwhichpointthememoryisreleasedandthewindowisclearedwithcvReleaseImageand
cvDestroyWindow.

int_tmain(intargc,_TCHAR*argv[])
{

IplImage*img=cvLoadImage("MGC.jpg");

cvNamedWindow("Example1",CV_WINDOW_AUTOSIZE);

cvShowImage("Example1",img);

cvWaitKey(0);

cvReleaseImage(&img);

cvDestroyWindow("Example1");

return0;
}

Thenextstepistodisplayavideo.NowwehavetocreateaCvCapture*objectwithcvCreateFileCapture.Weloopthroughtheimagesusing
cvQueryFrametogeteachframeandcvWaitKey(33)towait33msbetweeneachframe.TheniftheuserpressesEsctheloopbreaksandthe
captureisreleasedandthewindowclosed.Itshouldbenotedthatinordertocapturefromacamerainsteadofavideofile,allthatisneededis
toreplacecvCreateFileCapturewithcvCreateCameraCapture(0)whichwillpickthefirstavailablecamerainterface.Hereisthecodefor
playingavideo:

int_tmain(intargc,_TCHAR*argv[])
{

cvNamedWindow("Example2",CV_WINDOW_AUTOSIZE);

CvCapture*capture=cvCreateFileCapture("MGC_RC_ATV.avi");

IplImage*frame;

while(1){

frame=cvQueryFrame(capture);

if(!frame)break;

cvShowImage("Example2",frame);

charc=cvWaitKey(33);

if(c==27)break;

cvReleaseCapture(&capture);

cvDestroyWindow("Example2");

return0;
}

Step3:SimpleTransformations

http://dasl.mem.drexel.edu/~noahKuntz/openCVTut1.html

2/5

6/1/2015

OpenCVTutorial1

Gaussianblurtransformation
Nextwewouldliketobeabletodosomeactualprocessingonanimage.Onesimpletransformationisagaussianblur.Firstweloadanimage
asbefore,andmaketwowindows.Anewfunctioninthisexampleiscreatinganemptyimagetoholdtheoutput,withcvCreateImage(
cvGetSize(img),IPL_DEPTH_8U,3)whichissayingmakeanewimagethesamesizeas"img",with3channelsof8bitseach.Thenthe
gaussianblurisaccomplishedwithcvSmooth(img,out,CV_GAUSSIAN,11,11)whichputstheresultin"out"andusesawindowof11x11
fortheblur.Hereisthecode:

int_tmain(intargc,_TCHAR*argv[])
{

IplImage*img=cvLoadImage("MGC.jpg");

cvNamedWindow("Example3in");

cvNamedWindow("Example3out");

//Showtheoriginalimage
cvShowImage("Example3in",img);

//Createanimagefortheoutput
IplImage*out=cvCreateImage(cvGetSize(img),IPL_DEPTH_8U,3);

//PerformaGaussianblur
cvSmooth(img,out,CV_GAUSSIAN,11,11);

//Showtheprocessedimage
cvShowImage("Example3out",out);

cvWaitKey(0);
cvReleaseImage(&img);
cvReleaseImage(&out);
cvDestroyWindow("Example3in");
cvDestroyWindow("Example3out");
return0;

http://dasl.mem.drexel.edu/~noahKuntz/openCVTut1.html

3/5

6/1/2015

OpenCVTutorial1

DownsampleandCannytransformation
Hereisanexampleofmoretransformations,doingapyramidaldownsampleofanimage,andperformingCannyedgedetection.Therearea
fewnewthingsinthisexample.Byaddinganinputof0tocvLoadImagetheimageisforcedtobegrayscale.ThisisrequiredforCannyedge
detection.Alsoweusepropertiesoftheimageloaded,forexample"img>width."Using">"youcanseeallthepropertiesfortheimagethat
areavailable.AndthentheimageisprocessedusingcvPyrDown(img,out)forthedownsample,andthencvCanny(out,out,10,100,3)for
theedgedetection.Forthecannyfunctionthesyntaxis"input,""output,""lowerthreshold,""upperthreshold,"and"aperature."

int_tmain(intargc,_TCHAR*argv[])
{

IplImage*img=cvLoadImage("MGC.jpg",0);

cvNamedWindow("Example4in");

cvNamedWindow("Example4out");

//Showtheoriginalimage
cvShowImage("Example4in",img);

//Makesureimageisdivisibleby2
assert(img>width%2==0&&img>height%2==0);

//Createanimagefortheoutput
IplImage*out=cvCreateImage(cvSize(img>width/2,img>height/2),img>depth,img>nChannels);

//Reducetheimageby2
cvPyrDown(img,out);

//Showtheprocessedimage
cvShowImage("Example4out",out);

cvWaitKey(0);
cvReleaseImage(&img);
cvReleaseImage(&out);
cvDestroyWindow("Example4in");
cvDestroyWindow("Example4out");

return0;

//Performcannyedgedetection
cvCanny(out,out,10,100,3);

FinalWords
Thistutorial'sobjectivewastoshowhowtodobasicimageloadingandprocessinginOpenCV.Latertutorialsinthisserieswillexpandon
thefunctionalityshownhere.
Clickheretoemailme.
ClickheretoreturntomyTutorialspage.
hitcounter
http://dasl.mem.drexel.edu/~noahKuntz/openCVTut1.html

4/5

6/1/2015

OpenCVTutorial1
htmlhitcountercode

http://dasl.mem.drexel.edu/~noahKuntz/openCVTut1.html

5/5

You might also like