“If the first thing you want to do is try out some examples please start with reading the Install section.
This is my first contribution for this great forum and I hope the wrapper I'm introducing will be useful for those who are friends of the C# language and are occupied in the area of image processing.
Some years ago I decided to change from C++ (MSVS 6.0) and Java (Eclipse) to C#. I was surprised at how easy it was to pick up, even for understanding complex tasks. At the same time I was seized by the desire to port some of my older C++ image processing projects where I used parts of Intel's OpenCV Library.
- The wrapper is provided in the form of a dynamic link library. (DLL)
- All exported methods (e.g.
cvCanny,...), the most important macros, constructors, constant definitions and callbacks are visible through on class. (e.g.:
- All structure definitions are usable in a familiar way (e.g. IplImage img;, CvMat mat;).
- Special function parameters like pointers are passed by
IntPtr, and for casting additional support is available (a second tools library, see cvtools) when necessary.
- The conversion to and from drawing types like Bitmap is integrated in the Library and casting operators to and from Bitmap are available.
- For error handling, the provided mechanisms of the OpenCV Library can be used. There is no support for exceptions (still not).
- Callbacks are handled by predefind delegates. Use trackbars in a child window, mouse callbacks and error handlers in a familiar way.
- The user has to take care freeing the unmanaged memory. This is simply done by call of the appropriated OpenCV functions, e.g.
The OpenCV Library has a very extensive amount of highly developed algorithms (more than 400 functions, hundreds of macros, myriads of constants etc.) so it seemed nearly impossible for a single person to encapsulate all of this. Additionally, there is a high probability of overloading and default values.
This library is intended for use, incorporation and modification by researchers, commercial software developers, government and camera vendors as reflected in the license.
See the Library Overview for a quick idea of what's in the library.
FAQ (Frequently Asked Questions).
Philosophy – Aid commercial uses of computer vision in human-computer interface, robotics, monitoring, biometrics and security by providing a free and open infrastructure where the distributed efforts of the vision community can be consolidated and performance optimized.
“This library is mainly aimed at real time computer vision. Some example areas would be Human-Computer Interaction (HCI); Object Identification, Segmentation and Recognition; Face Recognition; Gesture Recognition; Motion Tracking, Ego Motion, Motion Understanding; Structure From Motion (SFM); and Mobile Robotics.
- Image functions
Creation, allocation, destruction of images. Fast pixel access macros.
- Contour Processing
Finding, displaying, manipulation, and simplification of image contours.
Line and ellipse fitting. Convex hull. Contour analysis.
Erode, dilate, open, close. Gradient, top-hat, black-hat.
- Background Differencing
Accumulate images and squared images. Running averages.
- Camera Calibration
Intrinsic and extrinsic, Rodrigues, un-distortion, Finding checkerboard calibration pattern
- View Morphing
8 point algorithm, Epipolar alignment of images
- Gesture Recognition
Stereo based: Finding hand, hand mask. Image homography, bounding box.
Intel® Image Processing Library (included in OpenCV WinOS download):
- Image creation and access (same image header used for both libraries).
- Image arithmetic and logic operations.
- Image filtering.
- Linear image transformation.
- Image morphology.
- Color space conversion.
- Image histogram and thresholding.
- Geometric transformation (zoom-decimate, rotate, mirror, shear, warp, perspective transform, affine transform).
- Image moments.
“Welcome to the OpenCV Wiki
This Wiki is intended to support the OpenCV community. The main objective is to share experiences and improve the documentation.
- Support, Documentation & Resources
This is the first time I’ve looked at OpenCV. Wow, there’s some pretty nifty stuff there! And the license is very friendly too.
Hum… Looks like one more project to keep an eye on. :)