summaryrefslogtreecommitdiff
path: root/opencv/hello-opencv.cpp
diff options
context:
space:
mode:
authorTim Redfern <tim@herge.(none)>2013-07-09 17:33:12 +0100
committerTim Redfern <tim@herge.(none)>2013-07-09 17:33:12 +0100
commit0606ec24cbc1301b50f9f4bb2eae030d0658315f (patch)
tree2184fe8750f633182fdb7ec70e9930e162464ce0 /opencv/hello-opencv.cpp
parent06c6f158088ce9132375cfe7f5c27f7c200b44dc (diff)
starting to wrap opencv
Diffstat (limited to 'opencv/hello-opencv.cpp')
-rw-r--r--opencv/hello-opencv.cpp69
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;
+}