@@ -67,8 +67,7 @@ _get_transform_mesh(PyObject *py_affine, npy_intp *dims)
6767 out_dims[0 ] = dims[0 ] * dims[1 ];
6868 out_dims[1 ] = 2 ;
6969
70- py_inverse = PyObject_CallMethod (
71- py_affine, (char *)" inverted" , (char *)" " , NULL );
70+ py_inverse = PyObject_CallMethod (py_affine, " inverted" , NULL );
7271 if (py_inverse == NULL ) {
7372 return NULL ;
7473 }
@@ -83,10 +82,8 @@ _get_transform_mesh(PyObject *py_affine, npy_intp *dims)
8382 }
8483 }
8584
86- PyObject *output_mesh =
87- PyObject_CallMethod (
88- py_inverse, (char *)" transform" , (char *)" O" ,
89- (char *)input_mesh.pyobj (), NULL );
85+ PyObject *output_mesh = PyObject_CallMethod (
86+ py_inverse, " transform" , " O" , input_mesh.pyobj_steal ());
9087
9188 Py_DECREF (py_inverse);
9289
@@ -120,7 +117,12 @@ image_resample(PyObject *self, PyObject* args, PyObject *kwargs)
120117 PyArrayObject *output_array = NULL ;
121118 PyArrayObject *transform_mesh_array = NULL ;
122119
120+ params.interpolation = NEAREST;
123121 params.transform_mesh = NULL ;
122+ params.resample = false ;
123+ params.norm = false ;
124+ params.radius = 1.0 ;
125+ params.alpha = 1.0 ;
124126
125127 const char *kwlist[] = {
126128 " input_array" , " output_array" , " transform" , " interpolation" ,
@@ -146,9 +148,18 @@ image_resample(PyObject *self, PyObject* args, PyObject *kwargs)
146148 goto error;
147149 }
148150
149- output_array = (PyArrayObject *)PyArray_FromAny (
150- py_output_array, NULL , 2 , 3 , NPY_ARRAY_C_CONTIGUOUS, NULL );
151- if (output_array == NULL ) {
151+ if (!PyArray_Check (py_output_array)) {
152+ PyErr_SetString (PyExc_ValueError, " output array must be a NumPy array" );
153+ goto error;
154+ }
155+ output_array = (PyArrayObject *)py_output_array;
156+ if (!PyArray_IS_C_CONTIGUOUS (output_array)) {
157+ PyErr_SetString (PyExc_ValueError, " output array must be C-contiguous" );
158+ goto error;
159+ }
160+ if (PyArray_NDIM (output_array) < 2 || PyArray_NDIM (output_array) > 3 ) {
161+ PyErr_SetString (PyExc_ValueError,
162+ " output array must be 2- or 3-dimensional" );
152163 goto error;
153164 }
154165
@@ -330,11 +341,10 @@ image_resample(PyObject *self, PyObject* args, PyObject *kwargs)
330341
331342 Py_DECREF (input_array);
332343 Py_XDECREF (transform_mesh_array);
333- return (PyObject *)output_array ;
344+ Py_RETURN_NONE ;
334345
335346 error:
336347 Py_XDECREF (input_array);
337- Py_XDECREF (output_array);
338348 Py_XDECREF (transform_mesh_array);
339349 return NULL ;
340350}
0 commit comments