OpenCV Setup Instructions
Author: When: Wednesday, 03 March 2010April 2009
May 2009
August 2009
September 2009
October 2009
- Building a Concrete Bath
- LED Lighting Comparison
- Thinking about Programming Languages
- How To Be A Consultant
- Lucid Programming Dojo
- Exim4 + ClamAV + SpamAssassin
- Secure login using AJAX
- Ramaze And Rack
- ActiveMerchant
- Concurrency And Immutability
- Floating Point Numbers
- Programming And Debugging
- Useful jQuery Plugins
- Loading Anonymous Ruby Classes
- 尺八 (Shakuhachi)
- Card Trick
- Object Oriented C
- Gemcutter
- Writing Clearly
- Richard Stallman In Christchurch
- Magnatune
- Client Side Graphing
- Zena CMS
November 2009
February 2010
March 2010
April 2010
May 2010
June 2010
July 2010
August 2010
September 2010
December 2010
January 2011
March 2011
May 2011
August 2011
September 2011
OpenCV 2.0 can be difficult to setup and install. Here are some setup instructions for Windows and Mac OS X, including how to create a new project in Visual C / Xcode.
Windows Setup
Firstly, we need to compile OpenCV for Windows. You can download OpenCV from the SorceForge downloads page.. Get the latest version (as of writing, OpenCV-2.0.0a-win32.exe). You will also need a copy of CMake, so download and install that too.
Run CMake GUI tool and configure OpenCV there:
Click the Configure button in the lower left hand corner, and in the window that opens, choose your IDE (e.g. Visual Studio 9):
Once you've done this, click configure again, and the generate button should become enabled:
Click the generate button:
Once all the files have been generated, you will need to open the project that has been created in the output directory you choose earlier:
Build this project in both debug and release mode (this could take a bit of time depending on your computer):
When creating a new project, you will need to ensure that the headers and libraries are available:
Add the following to your new project (Tools → Options → Projects and Solutions → VC++ Directories):
- Include Files
- Add in the directory containing OpenCV header files (e.g.
C:\\OpenCV2.0) - Library Files
C:\\[OpenCV2.0 Build Directory]\\lib\\debugC:\\[OpenCV2.0 Build Directory]\\lib\\release- Source Files
C:\\[OpenCV2.0 Build Directory]\\src\\cvC:\\[OpenCV2.0 Build Directory]\\src\\cvauxC:\\[OpenCV2.0 Build Directory]\\src\\cxcoreC:\\[OpenCV2.0 Build Directory]\\src\\highgui
Thanks to Yen-Sheng Pan for these instructions.
Mac OS X 10.6 / Xcode 3.0 Setup
Download and install the package here: OpenCV-2.0.0-Darwin.dmg.
Create a new Xcode "Command Line Tool" project:
From the menu, select Project → Edit Active Target "...". Under the "Configuration" drop down, select "All Configurations", and then edit the options under "Architectures" to match the following:
You should now be able to compile your project with OpenCV.
Simple Example
#include <iostream>
#include <opencv/cv.h>
#include <opencv/highgui.h>
const char * WindowName = "Video 01";
int main (int argc, const char * argv[]) {
CvCapture * capture = NULL;
IplImage * frame = NULL, * prevFrame = NULL, * diffFrame = NULL;
int key = 0;
// Initialize Camera
capture = cvCaptureFromCAM(0);
if (capture == NULL) {
perror("Could not open camera device!");
return 1;
}
frame = cvQueryFrame(capture);
prevFrame = cvCloneImage(frame);
diffFrame = cvCloneImage(frame);
cvNamedWindow(WindowName, CV_WINDOW_AUTOSIZE);
std::cout << "Frame : " << frame->width << ", " << frame->height << std::endl;
while (key != 'q') {
frame = cvQueryFrame(capture);
if (frame == NULL) {
perror("Could not get frame from device!");
break;
}
cvAbsDiff(frame, prevFrame, diffFrame);
cvThreshold(diffFrame, diffFrame, 32, 0, CV_THRESH_TOZERO);
cvCopy(frame, prevFrame, NULL);
cvShowImage(WindowName, diffFrame);
key = cvWaitKey(1);
}
cvDestroyWindow(WindowName);
cvReleaseCapture(&capture);
return 0;
}
Thanks to Björn Giesler for putting together an installer.
OpenCV 2.0 Documentation
The best documentation I can find is this wiki. It has a good search function and I've generally found the documentation to be concise and easy to understand.
Comments
Please note, you can leave a comment that uses (limited) XHTML and Textile syntax.