How to compile
g++ prog.c -o prog -I /usr/local/include/opencv -L /usr/local/lib -lm -lcv -lhighgui -lcvaux
You may omit
-lcvaux
Sample program (to load an image)
/*filename prog.c*/ /* usage: prog <image_name> */ #include “cv.h†#include “highgui.h†int main( int argc, char** argv ) { IplImage* img; if( argc == 2 && (img = cvLoadImage( argv[1], 1)) != 0 ) { cvNamedWindow( “Image viewâ€, 1 ); cvShowImage( “Image viewâ€, img ); cvWaitKey(0); // very important, contains event processing loop inside cvDestroyWindow( “Image view†); cvReleaseImage( &img ); return 0; } return -1; }
How to use
./hello filename.jpg
Controlling parallel port and loading image
The code will make the pin2 of parallel port high.Then after 2 seconds the pin2-pin9 of parallel port high and also load the image.These kind of codes are applicable where we need robots using image processing.
Consider a fire fighting robot.The robot is controlled through parallel port by the RF transmitter.The USB cam overhead can see the robot and controll it direction.
This is the code
/*filename prog.c*/ /* usage: prog <image_name> */ #include “cv.h†#include “highgui.h†#include<stdio.h> #include <stdlib.h> #include <unistd.h> #include <asm/io.h> #define base 0×378 /* printer port base address */ int main( int argc, char** argv ) { IplImage* img; if( argc == 2 && (img = cvLoadImage( argv[1], 1)) != 0 ) { /* set parellel port */ if (ioperm(base,1,1)) fprintf(stderr, “Couldn’t get the port at %x\nâ€, base), exit(1);/* parallel port error message */ outb(1, base);/* outputing value through parallel port */ sleep(2); outb(255, base); /* load image */ cvNamedWindow( “Image viewâ€, 1 ); cvShowImage( “Image viewâ€, img ); cvWaitKey(0); // very important, contains event processing loop inside cvDestroyWindow( “Image view†); cvReleaseImage( &img ); return 0; } return -1; }
Compiling the program
Here we have to use gcc for compiling
gcc prog.c -o prog -I /usr/local/include/opencv -L /usr/local/lib -lm -lcv -lhighgui