// 2008-05-15, Xavier Delacour <xavier.delacour@gmail.com>
+struct CvLSH {};
+
%extend IplImage { ~IplImage () { IplImage * dummy = self; cvReleaseImage (& dummy); } }
%extend CvMat { ~CvMat () { CvMat * dummy = self; cvReleaseMat (& dummy); } }
%extend CvMatND { ~CvMatND () { CvMatND * dummy = self; cvReleaseMatND (& dummy); } }
%extend CvHaarClassifierCascade { ~CvHaarClassifierCascade () { CvHaarClassifierCascade * dummy = self; cvReleaseHaarClassifierCascade (& dummy); } }
%extend CvPOSITObject { ~CvPOSITObject () { CvPOSITObject * dummy = self; cvReleasePOSITObject (& dummy); } }
%extend CvFeatureTree { ~CvFeatureTree () { CvFeatureTree * dummy = self; cvReleaseFeatureTree (& dummy); } }
+%extend CvLSH { ~CvLSH () { CvLSH * dummy = self; cvReleaseLSH (& dummy); } }
// string operators for some OpenCV types
int CvMat_cols_get(CvMat * m){
return m->cols;
}
+void CvMat_cols_set(CvMat * m, int cols){
+ m->cols = cols;
+}
int CvMat_rows_get(CvMat *m){
return m->rows;
}
+void CvMat_rows_set(CvMat *m, int rows){
+ m->rows = rows;
+}
int CvMat_width_get(CvMat * m){
return m->cols;
}
+void CvMat_width_set(CvMat * m, int width){
+ m->cols = width;
+}
int CvMat_height_get(CvMat *m){
return m->rows;
}
+void CvMat_height_set(CvMat * m, int height){
+ m->rows = height;
+}
int CvMat_depth_get(CvMat * m){
- return cvCvToIplDepth(m->type);
+ return cvIplDepth(m->type);
+}
+void CvMat_depth_set(CvMat *m, int depth){
+ cvError(CV_StsNotImplemented, "CvMat_depth_set", "Not Implemented", __FILE__, __LINE__);
}
int CvMat_nChannels_get(CvMat * m){
return CV_MAT_CN(m->type);
}
+void CvMat_nChannels_set(CvMat *m, int nChannels){
+ int depth = CV_MAT_DEPTH(m->type);
+ m->type = CV_MAKETYPE(depth, nChannels);
+}
int CvMat_origin_get(CvMat * m){
- return 0;
+ /* Always 0 - top-left origin */
+ return 0;
+}
+void CvMat_origin_set(CvMat * m, int origin){
+ cvError(CV_StsNotImplemented, "CvMat_origin_get", "IplImage is replaced by CvMat in Python, so its fields are read-only", __FILE__, __LINE__);
}
int CvMat_dataOrder_get(CvMat * m){
- return 0;
+ cvError(CV_StsNotImplemented, "CvMat_dataOrder_get", "Not Implemented", __FILE__, __LINE__);
+ return 0;
+}
+void CvMat_dataOrder_set(CvMat * m, int dataOrder){
+ cvError(CV_StsNotImplemented, "CvMat_dataOrder_get", "IplImage is replaced by CvMat in Python, so its fields are read-only", __FILE__, __LINE__);
}
int CvMat_imageSize_get(CvMat * m){
- int step = m->step ? m->step :
- step = CV_ELEM_SIZE(m->type) * m->cols;
+ int step = m->step ? m->step : CV_ELEM_SIZE(m->type) * m->cols;
return step*m->rows;
}
+void CvMat_imageSize_set(CvMat * m, int imageSize){
+ cvError(CV_StsNotImplemented, "CvMat_imageSize_set", "IplImage is not implemented in Python, so origin is read-only", __FILE__, __LINE__);
+}
int CvMat_widthStep_get(CvMat * m){
return m->step;
}
+void CvMat_widthStep_set(CvMat *m, int widthStep){
+ m->step = widthStep;
+}
%}
+
%extend CvMat
{
- const int depth;
- const int nChannels;
- const int dataOrder;
- const int origin;
- const int width;
- const int height;
- const int imageSize;
- const int widthStep;
+ int depth;
+ int nChannels;
+ int dataOrder;
+ int origin;
+ int width;
+ int height;
+ int imageSize;
+ int widthStep;
// swig doesn't like the embedded union in CvMat, so re-add these
- const int rows;
- const int cols;
+ int rows;
+ int cols;
};