static PyObject *Py_BinaryErosion2(PyObject *obj, PyObject *args) { PyArrayObject *array = NULL, *strct = NULL, *mask = NULL; PyObject *cobj = NULL; int invert, niter; npy_intp *origins = NULL; if (!PyArg_ParseTuple(args, "O&O&O&iO&iO", NI_ObjectToIoArray, &array, NI_ObjectToInputArray, &strct, NI_ObjectToOptionalInputArray, &mask, &niter, NI_ObjectToLongSequence, &origins, &invert, &cobj)) goto exit; if (NpyCapsule_Check(cobj)) { NI_CoordinateList *cobj_data = NpyCapsule_AsVoidPtr(cobj); if (!NI_BinaryErosion2(array, strct, mask, niter, origins, invert, &cobj_data)) goto exit; } else { PyErr_SetString(PyExc_RuntimeError, "cannot convert CObject"); goto exit; } exit: Py_XDECREF(array); Py_XDECREF(strct); Py_XDECREF(mask); if (origins) free(origins); return PyErr_Occurred() ? NULL : Py_BuildValue(""); }
static PyObject *Py_BinaryErosion2(PyObject *obj, PyObject *args) { PyArrayObject *array = NULL, *strct = NULL, *mask = NULL; PyObject *cobj = NULL; int invert, niter; PyArray_Dims origin; if (!PyArg_ParseTuple(args, "O&O&O&iO&iO", NI_ObjectToInputOutputArray, &array, NI_ObjectToInputArray, &strct, NI_ObjectToOptionalInputArray, &mask, &niter, PyArray_IntpConverter, &origin, &invert, &cobj)) { goto exit; } if (!_validate_origin(array, origin)) { goto exit; } if (NpyCapsule_Check(cobj)) { NI_CoordinateList *cobj_data = NpyCapsule_AsVoidPtr(cobj); if (!NI_BinaryErosion2(array, strct, mask, niter, origin.ptr, invert, &cobj_data)) { goto exit; } } else { PyErr_SetString(PyExc_RuntimeError, "cannot convert CObject"); } exit: Py_XDECREF(array); Py_XDECREF(strct); Py_XDECREF(mask); PyDimMem_FREE(origin.ptr); return PyErr_Occurred() ? NULL : Py_BuildValue(""); }