sometimes the docs are a bit dated. But nonetheless, those constants are
just integers defines in the header files and is where I got the values 0-4,
I used the integers in the example just to make it a bit more clear. But 0-4
are valid constants for the call, as they worked in the pure C example.
What you showed for exposing the constants however, is interesting, I have
been just defining the constants as module level python integers so they can
be used from python. If defined as an enum as you show, will they
be accessible from python?

Chris

On Wed, May 27, 2009 at 9:40 AM, Lisandro Dalcin <[email protected]> wrote:

> According to the docs,
>
> http://opencv.willowgarage.com/wiki/CvReference#Sampling.2CInterpolationandGeometricalTransforms
> ,
> There are 4 possible values (you mention 5). Is that OpenCV
> documentation dated? IMHO, you should use them. To expose these
> constants in Cython code (likely in some pxd), you can do this:
>
> cdef extern from ....:
>
>    enum: CV_INTER_NN
>    enum: CV_INTER_LINEAR
>    enum: CV_INTER_AREA
>    enum: CV_INTER_CUBIC
>
>
>
> On Wed, May 27, 2009 at 12:57 AM, Chris Colbert <[email protected]>
> wrote:
> > So I'm wrapping the OpenCV library in Cython and its coming along quite
> > nicely (thanks to everyone here for getting me up to speed!), but today
> I've
> > run across a strange issue where a wrapped function fails for certain
> values
> > of integer arguments, but a pure c implementation testing the same thing
> > with the same arguments works.
> > Here is the code excerpts im using:
> > #---------- .pyx ------------------#
> > def cvResize(cy_cvtypes.CvArr src, cy_cvtypes.CvArr dst, interpolation):
> >     cdef c_cxcore.CvArr* c_src = src.handle()
> >     cdef c_cxcore.CvArr* c_dst = dst.handle()
> >     cdef int c_interpolation = interpolation
> >     with nogil:
> >         c_cv.cvResize(c_src, c_dst, c_interpolation)
> > #-------- c_cv.pxd -----------------#
> > cdef extern from "cv.h":
> >     void cvResize(CvArr* src, CvArr* dst, int interpolation) nogil
> >
> > #--------- test.py -----------------#
> > from cyopencv import *
> > if __name__=='__main__':
> >     img = cvLoadImage('2.bmp')
> >     img2 = cvCreateImage((640, 480), img.depth, img.nChannels)
> >     cvResize(img, img2, 3)
> >     img2.show()
> >
> >
> > #--------- pureC.c -----------#
> > #include "highgui.h"
> > #include "cv.h"
> > #include "cxcore.h"
> > #include "cxtypes.h"
> > int main(void)
> > {
> >     IplImage* img, *img2;
> >     img = cvLoadImage("2.bmp", 1);
> >     img2 = cvCreateImage(cvSize(640, 480), img->depth, img->nChannels);
> >     cvResize(img, img2, 3);
> >     cvNamedWindow("test", 1);
> >     cvShowImage("test", img2);
> >     cvWaitKey(0);
> >     cvDestroyAllWindows();
> >     cvReleaseImage(&img);
> >     cvReleaseImage(&img2);
> > }
> >
> >
> > valid integers for the argument 'interpolation' are 0, 1, 2, 3, 4 (as
> tested
> > with the C function). My Cython wrapper fails with a Python crash for
> > integer values 1 & 2.  Values of 0,1,4 work properly and the output image
> > matches the output image of the C test function under the same
> conditions.
> > I've looked at the generated Cython code and everything seems in order, I
> > just can't think of what could be causing this behavior.
> > Any thoughts?
> > Cheers!
> > Chris
> >
> > _______________________________________________
> > Cython-dev mailing list
> > [email protected]
> > http://codespeak.net/mailman/listinfo/cython-dev
> >
> >
>
>
>
> --
> Lisandro Dalcín
> ---------------
> Centro Internacional de Métodos Computacionales en Ingeniería (CIMEC)
> Instituto de Desarrollo Tecnológico para la Industria Química (INTEC)
> Consejo Nacional de Investigaciones Científicas y Técnicas (CONICET)
> PTLC - Güemes 3450, (3000) Santa Fe, Argentina
> Tel/Fax: +54-(0)342-451.1594
> _______________________________________________
> Cython-dev mailing list
> [email protected]
> http://codespeak.net/mailman/listinfo/cython-dev
>
_______________________________________________
Cython-dev mailing list
[email protected]
http://codespeak.net/mailman/listinfo/cython-dev

Reply via email to