This article is basically for installing Opencv 2.1 in Ubuntu 10.10. Opencv basically helps in image processing using c++ . For reading or writing images in c++ , we require Opencv. The steps below are the commands to be given in the terminal.
1.This installation needs a C++ compiler like “g++”. So install g++ by typing the following command at the terminal–
2. OpenCV requires GTK+ 2.0 or higher for displaying images. GTK is graphical user interface library. Type out the following code to know the version of GTK+ installed on ur pc.
This command should give o/p something like this if its installed on your system:
If not, then you need to install the libraries for GTK+ 2.0 first, then start with this opencv installation.
To install GTK+ 2.0 libraries, type the following:
3. After installing all the packages, type this code:
The above ones are default paths for the opencv libraries.
4. To check the path where opencv & other lib files are stored, do:
This output shows the path of the header file as:
-I/usr/include/opencv
-lcxcore -lcv -lhighgui -lcvaux -lml
An Example code:
This code reads an image an displays it.It is named as img.cc
These paths are needed to compile your opencv programs as shown below:
5. To compile & run:
where img.cc is c++ code for reading an image and displaying it.
6. For simplyfying the above command create an alias of the command in the home directory as
Following steps 5 and 6 we get the output as shown below.
1.This installation needs a C++ compiler like “g++”. So install g++ by typing the following command at the terminal–
$ sudo apt-get install g++
2. OpenCV requires GTK+ 2.0 or higher for displaying images. GTK is graphical user interface library. Type out the following code to know the version of GTK+ installed on ur pc.
$ dpkg -l | grep libgtk
This command should give o/p something like this if its installed on your system:
ii libgtk-vnc-1.0-0 0.4.1-3ubuntu2 A VNC viewer widget for GTK+ (runtime libraries)
ii libgtk2-perl 2:1.222-1 Perl interface to the 2.x series of the Gimp Toolkit library
ii libgtk2.0-0 2.22.0-0ubuntu1 The GTK+ graphical user interface library
ii libgtk2.0-bin 2.22.0-0ubuntu1 The programs for the GTK+ graphical user interface library
ii libgtk2.0-cil 2.12.10-1 CLI binding for the GTK+ toolkit 2.12
ii libgtk2.0-common 2.22.0-0ubuntu1 Common files for the GTK+ graphical user interface library
ii libgtk2.0-dev 2.22.0-0ubuntu1 Development files for the GTK+ library
ii libgtkhtml-editor-common 1:3.30.3-1ubuntu1 HTML rendering/editing library - editor widget data
ii libgtkhtml-editor0 1:3.30.3-1ubuntu1 HTML rendering/editing library - editor widget
ii libgtkhtml3.14-19 1:3.30.3-1ubuntu1 HTML rendering/editing library - runtime files
ii libgtkmm-2.4-1c2a 1:2.20.3-1 C++ wrappers for GTK+ (shared libraries)
ii libgtksourceview2.0-0 2.10.5-0ubuntu1 shared libraries for the GTK+ syntax highlighting widget
ii libgtksourceview2.0-common 2.10.5-0ubuntu1 common files for the GTK+ syntax highlighting widget
ii libgtkspell0 2.0.16-1 a spell-checking addon for GTK's TextView widget
ii libgtk2-perl 2:1.222-1 Perl interface to the 2.x series of the Gimp Toolkit library
ii libgtk2.0-0 2.22.0-0ubuntu1 The GTK+ graphical user interface library
ii libgtk2.0-bin 2.22.0-0ubuntu1 The programs for the GTK+ graphical user interface library
ii libgtk2.0-cil 2.12.10-1 CLI binding for the GTK+ toolkit 2.12
ii libgtk2.0-common 2.22.0-0ubuntu1 Common files for the GTK+ graphical user interface library
ii libgtk2.0-dev 2.22.0-0ubuntu1 Development files for the GTK+ library
ii libgtkhtml-editor-common 1:3.30.3-1ubuntu1 HTML rendering/editing library - editor widget data
ii libgtkhtml-editor0 1:3.30.3-1ubuntu1 HTML rendering/editing library - editor widget
ii libgtkhtml3.14-19 1:3.30.3-1ubuntu1 HTML rendering/editing library - runtime files
ii libgtkmm-2.4-1c2a 1:2.20.3-1 C++ wrappers for GTK+ (shared libraries)
ii libgtksourceview2.0-0 2.10.5-0ubuntu1 shared libraries for the GTK+ syntax highlighting widget
ii libgtksourceview2.0-common 2.10.5-0ubuntu1 common files for the GTK+ syntax highlighting widget
ii libgtkspell0 2.0.16-1 a spell-checking addon for GTK's TextView widget
If not, then you need to install the libraries for GTK+ 2.0 first, then start with this opencv installation.
To install GTK+ 2.0 libraries, type the following:
$ sudo apt-get install libgtk2.0-dev
3. After installing all the packages, type this code:
$ export LD_LIBRARY_PATH=/home/opencv/lib
$ export PKG_CONFIG_PATH=/home/opencv/lib/pkgconfig
The above ones are default paths for the opencv libraries.
4. To check the path where opencv & other lib files are stored, do:
$ pkg-config --cflags opencv
This output shows the path of the header file as:
-I/usr/include/opencv
$ pkg-config --libs opencv
This output shows the libraries required to be included.-lcxcore -lcv -lhighgui -lcvaux -lml
An Example code:
This code reads an image an displays it.It is named as img.cc
#include <stdlib.h>
#include <iostream>
#include <math.h>
#include </usr/include/opencv/cv.h>
#include </usr/include/opencv/highgui.h>
using namespace std;
int main(int argc, char *argv[])
{
IplImage* img = 0;
IplImage* img1=cvCreateImage(cvSize(256,256),IPL_DEPTH_8U,1);
int height,width,step,channels;
unsigned char *data;
int i,j,k;
if(argc<2){
cout<<"Usage: main <image-file-name>";
exit(0);
}
// load an image
img=cvLoadImage(argv[1],-1); //-1 is a flag (flag<0 the loaded image is loaded as is (with number of channels in the file)
if(!img){
cout<<"Could not load image file:"<<argv[1]<<endl;
exit(0);
}
// get the image data
height = img->height;
width = img->width;
step = img->widthStep;
channels = img->nChannels;
data = (unsigned char *)img->imageData;
cout<<"Height - "<<height<<endl;
cout<<"Width - "<<width<<endl;
cout<<"WidthStep - "<<step<<endl;
cout<<"Channels - "<<channels<<endl;
cout<<endl;
cvNamedWindow("Read Image", CV_WINDOW_AUTOSIZE);
// creating the image
for(i=0;i<height;i++) for(j=0;j<width;j++) for(k=0;k<channels;k++)
data[i*step+j*channels+k]=data[i*step+j*channels+k];
img1->imageData=(char*)data;
// show the image
cvShowImage("Read Image", img1 );
// wait for a key
cvWaitKey(0);
// release the image
cvReleaseImage(&img );
return 0;
}
#include <iostream>
#include <math.h>
#include </usr/include/opencv/cv.h>
#include </usr/include/opencv/highgui.h>
using namespace std;
int main(int argc, char *argv[])
{
IplImage* img = 0;
IplImage* img1=cvCreateImage(cvSize(256,256),IPL_DEPTH_8U,1);
int height,width,step,channels;
unsigned char *data;
int i,j,k;
if(argc<2){
cout<<"Usage: main <image-file-name>";
exit(0);
}
// load an image
img=cvLoadImage(argv[1],-1); //-1 is a flag (flag<0 the loaded image is loaded as is (with number of channels in the file)
if(!img){
cout<<"Could not load image file:"<<argv[1]<<endl;
exit(0);
}
// get the image data
height = img->height;
width = img->width;
step = img->widthStep;
channels = img->nChannels;
data = (unsigned char *)img->imageData;
cout<<"Height - "<<height<<endl;
cout<<"Width - "<<width<<endl;
cout<<"WidthStep - "<<step<<endl;
cout<<"Channels - "<<channels<<endl;
cout<<endl;
cvNamedWindow("Read Image", CV_WINDOW_AUTOSIZE);
// creating the image
for(i=0;i<height;i++) for(j=0;j<width;j++) for(k=0;k<channels;k++)
data[i*step+j*channels+k]=data[i*step+j*channels+k];
img1->imageData=(char*)data;
// show the image
cvShowImage("Read Image", img1 );
// wait for a key
cvWaitKey(0);
// release the image
cvReleaseImage(&img );
return 0;
}
These paths are needed to compile your opencv programs as shown below:
5. To compile & run:
$ g++ -I/usr/include/opencv -lcxcore -lhighgui -lm img.cc
where img.cc is c++ code for reading an image and displaying it.
$ ./a.out lena.bmp
6. For simplyfying the above command create an alias of the command in the home directory as
$ alias ocv="g++ -I/usr/include/opencv -lcv -lcxcore -lcvaux -lhighgui -lm"
$ ocv img.cc
$./a.out lena.bmp
Reading an image in C++ using OpenCv |
No comments:
Post a Comment