diff options
| author | Tim Redfern <tim@herge.(none)> | 2013-07-09 17:33:12 +0100 |
|---|---|---|
| committer | Tim Redfern <tim@herge.(none)> | 2013-07-09 17:33:12 +0100 |
| commit | 0606ec24cbc1301b50f9f4bb2eae030d0658315f (patch) | |
| tree | 2184fe8750f633182fdb7ec70e9930e162464ce0 /opencv/hello-opencv.cpp | |
| parent | 06c6f158088ce9132375cfe7f5c27f7c200b44dc (diff) | |
starting to wrap opencv
Diffstat (limited to 'opencv/hello-opencv.cpp')
| -rw-r--r-- | opencv/hello-opencv.cpp | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/opencv/hello-opencv.cpp b/opencv/hello-opencv.cpp new file mode 100644 index 0000000..ed8de6b --- /dev/null +++ b/opencv/hello-opencv.cpp @@ -0,0 +1,69 @@ +//////////////////////////////////////////////////////////////////////// +// +// hello-world.cpp +// +// This is a simple, introductory OpenCV program. The program reads an +// image from a file, inverts it, and displays the result. +// +//////////////////////////////////////////////////////////////////////// + +//plan: +//incorporate opencv images into the Rotor::image class +//initially:: update to support existing operations +//should all functionality that accesses image pixels be a part of the image class? + + +#include <stdlib.h> +#include <stdio.h> +#include <math.h> +#include <cv.h> +#include <highgui.h> + +#include "cvimage.h" + + +int main(int argc, char *argv[]) +{ + IplImage* img = 0; + int height,width,step,channels; + uchar *data; + int i,j,k; + + if(argc<2){ + printf("Usage: main <image-file-name>\n\7"); + exit(0); + } + + // load an image + img=cvLoadImage(argv[1]); + if(!img){ + printf("Could not load image file: %s\n",argv[1]); + exit(0); + } + + // get the image data + height = img->height; + width = img->width; + step = img->widthStep; + channels = img->nChannels; + data = (uchar *)img->imageData; + printf("Processing a %dx%d image with %d channels\n",height,width,channels); + + // create a window + cvNamedWindow("mainWin", CV_WINDOW_AUTOSIZE); + cvMoveWindow("mainWin", 100, 100); + + // invert 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]=255-data[i*step+j*channels+k]; + + // show the image + cvShowImage("mainWin", img ); + + // wait for a key + cvWaitKey(0); + + // release the image + cvReleaseImage(&img ); + return 0; +} |
