cl-opencv TODO List
Replace glue code and struct packing using fsbv
I have resorted to some hackery to deal with structs passed by value including packing structures into int64s and writing special-case glue code. It turns out there is a library fsbv that should allow me to handle these cases without such hackery.
Wrap highgui functions for reading and writing images. [0%]
- [ ] cvCreateVideoWriter
- [ ] cvReleaseVideoWriter
- [ ] cvWriteFrame
- [ ] CV_FOURCC
Add miscellaneous image transformations . [11%]
- [X] cvAdaptiveThreshold
- [ ] cvCvtColor
- [ ] cvDistTransform (?)
- [ ] CvConnectedComp
- [ ] cvFloodFill
- [ ] cvInpaint
- [ ] cvIntegral
- [ ] cvPyrMeanShiftFiltering
- [ ] cvPyrSegmentation
Make get capture property return proper type.
Currently all properties are returned as doubles, which forces me to truncate them when I actually am expecting an integer. Fix this so each property gets returned as the proper type.
Implement IplImage as a C struct accessible from Lisp.
This will allow me to directly access pixel data and other `IplImage` information through `IplImage` pointers. This would be particularly useful in conjunction with cvCreateImageHeader for creating a header and then pointing the data somewhere inside an existing image.
Create with-images macro to automatically release images when done.
Create with-window macro to automatically destroy windows when done.
Figure out how to do callbacks for foreign functions in Lisp.
Figure out how to better deal with passing structs by value.
Do better error handling of foreign function exceptions.
Wrap more of the user interface functionality. [0%]
- [ ] cvCreateTrackbar
- [ ] cvGetTrackbarPos
- [ ] cvGetWindowHandle (?)
- [ ] cvGetWindowName (?)
- [ ] cvInitSystem
- [ ] cvSetMouseCallback
- [ ] cvSetTrackbarPos
Add some simple image filters . [55%]
- [X] cvDilate
- [X] cvErode
- [ ] cvFilter2D
- [X] cvLaplace
- [ ] cvMorphologyEx
- [X] cvPyrDown
- [X] cvReleaseStructuringElement
- [ ] cvSmooth
- [ ] cvSobel
Handle custom values for create-structuring-element-ex.
The create-structuring-element-ex allows users to create their own convolution kernel. In the C interface the values of the kernel components are passed as an array (pointer to int). I need to add Lisp code to handle the list of kernel values and turn these into a native array.
 See http://opencv.willowgarage.com/documentation/c/imgproc__image_processing.html for a complete list of image processing functions.