Regression tests for morphology

This commit is contained in:
Damian Eads
2009-11-18 23:47:15 -08:00
parent f7f294ccf1
commit 56056cb40f
5 changed files with 233 additions and 302 deletions
+224 -192
View File
@@ -1,4 +1,4 @@
/* Generated by Cython 0.10.3 on Tue Aug 25 07:58:52 2009 */
/* Generated by Cython 0.10.3 on Wed Nov 18 21:26:57 2009 */
#define PY_SSIZE_T_CLEAN
#include "Python.h"
@@ -400,7 +400,7 @@ static char __pyx_k_20[] = "unknown dtype code in numpy.pxd (%d)";
static char __pyx_k_21[] = "Format string allocated too short.";
static char __pyx_k_22[] = "unknown dtype code in numpy.pxd (%d)";
/* "/home/eads/work/repo/try/scikits.image/scikits/image/morphology/cmorph.pyx":18
/* "/home/eads/work/repo/scikits.image/scikits/image/morphology/cmorph.pyx":18
* ctypedef np.uint8_t IMAGE_DTYPE_t
*
* cdef inline int int_max(int a, int b): return a if a >= b else b # <<<<<<<<<<<<<<
@@ -424,7 +424,7 @@ static INLINE int __pyx_f_7scikits_5image_10morphology_6cmorph_int_max(int __pyx
return __pyx_r;
}
/* "/home/eads/work/repo/try/scikits.image/scikits/image/morphology/cmorph.pyx":19
/* "/home/eads/work/repo/scikits.image/scikits/image/morphology/cmorph.pyx":19
*
* cdef inline int int_max(int a, int b): return a if a >= b else b
* cdef inline int int_min(int a, int b): return a if a <= b else b # <<<<<<<<<<<<<<
@@ -448,12 +448,12 @@ static INLINE int __pyx_f_7scikits_5image_10morphology_6cmorph_int_min(int __pyx
return __pyx_r;
}
/* "/home/eads/work/repo/try/scikits.image/scikits/image/morphology/cmorph.pyx":22
/* "/home/eads/work/repo/scikits.image/scikits/image/morphology/cmorph.pyx":22
*
* @cython.boundscheck(False)
* def dilate(np.ndarray[IMAGE_DTYPE_t, ndim=2] image not None, np.ndarray[IMAGE_DTYPE_t, ndim=2] selem not None, np.ndarray[IMAGE_DTYPE_t, ndim=2] out): # <<<<<<<<<<<<<<
* cdef int hw = selem.shape[0] / 2
* cdef int hh = selem.shape[1] / 2
* def dilate(np.ndarray[IMAGE_DTYPE_t, ndim=2] image not None, # <<<<<<<<<<<<<<
* np.ndarray[IMAGE_DTYPE_t, ndim=2] selem not None,
* np.ndarray[IMAGE_DTYPE_t, ndim=2] out):
*/
static PyObject *__pyx_pf_7scikits_5image_10morphology_6cmorph_dilate(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
@@ -587,8 +587,8 @@ static PyObject *__pyx_pf_7scikits_5image_10morphology_6cmorph_dilate(PyObject *
__pyx_bstruct_selem.buf = NULL;
__pyx_bstruct_out.buf = NULL;
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_image), __pyx_ptype_5numpy_ndarray, 0, "image", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_selem), __pyx_ptype_5numpy_ndarray, 0, "selem", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_out), __pyx_ptype_5numpy_ndarray, 1, "out", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_selem), __pyx_ptype_5numpy_ndarray, 0, "selem", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 23; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_out), __pyx_ptype_5numpy_ndarray, 1, "out", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 24; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
if (unlikely(__Pyx_GetBuffer_nn___pyx_t_7scikits_5image_10morphology_6cmorph_IMAGE_DTYPE_t((PyObject*)__pyx_v_image, &__pyx_bstruct_image, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0) == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_bstride_0_image = __pyx_bstruct_image.strides[0]; __pyx_bstride_1_image = __pyx_bstruct_image.strides[1];
__pyx_bshape_0_image = __pyx_bstruct_image.shape[0]; __pyx_bshape_1_image = __pyx_bstruct_image.shape[1];
@@ -599,17 +599,17 @@ static PyObject *__pyx_pf_7scikits_5image_10morphology_6cmorph_dilate(PyObject *
__pyx_bstride_0_out = __pyx_bstruct_out.strides[0]; __pyx_bstride_1_out = __pyx_bstruct_out.strides[1];
__pyx_bshape_0_out = __pyx_bstruct_out.shape[0]; __pyx_bshape_1_out = __pyx_bstruct_out.shape[1];
/* "/home/eads/work/repo/try/scikits.image/scikits/image/morphology/cmorph.pyx":23
* @cython.boundscheck(False)
* def dilate(np.ndarray[IMAGE_DTYPE_t, ndim=2] image not None, np.ndarray[IMAGE_DTYPE_t, ndim=2] selem not None, np.ndarray[IMAGE_DTYPE_t, ndim=2] out):
/* "/home/eads/work/repo/scikits.image/scikits/image/morphology/cmorph.pyx":25
* np.ndarray[IMAGE_DTYPE_t, ndim=2] selem not None,
* np.ndarray[IMAGE_DTYPE_t, ndim=2] out):
* cdef int hw = selem.shape[0] / 2 # <<<<<<<<<<<<<<
* cdef int hh = selem.shape[1] / 2
* cdef int width = image.shape[0], height = image.shape[1]
*/
__pyx_v_hw = ((__pyx_v_selem->dimensions[0]) / 2);
/* "/home/eads/work/repo/try/scikits.image/scikits/image/morphology/cmorph.pyx":24
* def dilate(np.ndarray[IMAGE_DTYPE_t, ndim=2] image not None, np.ndarray[IMAGE_DTYPE_t, ndim=2] selem not None, np.ndarray[IMAGE_DTYPE_t, ndim=2] out):
/* "/home/eads/work/repo/scikits.image/scikits/image/morphology/cmorph.pyx":26
* np.ndarray[IMAGE_DTYPE_t, ndim=2] out):
* cdef int hw = selem.shape[0] / 2
* cdef int hh = selem.shape[1] / 2 # <<<<<<<<<<<<<<
* cdef int width = image.shape[0], height = image.shape[1]
@@ -617,7 +617,7 @@ static PyObject *__pyx_pf_7scikits_5image_10morphology_6cmorph_dilate(PyObject *
*/
__pyx_v_hh = ((__pyx_v_selem->dimensions[1]) / 2);
/* "/home/eads/work/repo/try/scikits.image/scikits/image/morphology/cmorph.pyx":25
/* "/home/eads/work/repo/scikits.image/scikits/image/morphology/cmorph.pyx":27
* cdef int hw = selem.shape[0] / 2
* cdef int hh = selem.shape[1] / 2
* cdef int width = image.shape[0], height = image.shape[1] # <<<<<<<<<<<<<<
@@ -627,7 +627,7 @@ static PyObject *__pyx_pf_7scikits_5image_10morphology_6cmorph_dilate(PyObject *
__pyx_v_width = (__pyx_v_image->dimensions[0]);
__pyx_v_height = (__pyx_v_image->dimensions[1]);
/* "/home/eads/work/repo/try/scikits.image/scikits/image/morphology/cmorph.pyx":26
/* "/home/eads/work/repo/scikits.image/scikits/image/morphology/cmorph.pyx":28
* cdef int hh = selem.shape[1] / 2
* cdef int width = image.shape[0], height = image.shape[1]
* if out is None: # <<<<<<<<<<<<<<
@@ -637,35 +637,35 @@ static PyObject *__pyx_pf_7scikits_5image_10morphology_6cmorph_dilate(PyObject *
__pyx_1 = (((PyObject *)__pyx_v_out) == Py_None);
if (__pyx_1) {
/* "/home/eads/work/repo/try/scikits.image/scikits/image/morphology/cmorph.pyx":27
/* "/home/eads/work/repo/scikits.image/scikits/image/morphology/cmorph.pyx":29
* cdef int width = image.shape[0], height = image.shape[1]
* if out is None:
* out = np.zeros([width, height], dtype=IMAGE_DTYPE) # <<<<<<<<<<<<<<
*
* assert out.shape[0] == image.shape[0]
*/
__pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_np); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 27; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_3 = PyObject_GetAttr(__pyx_2, __pyx_kp_zeros); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 27; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_np); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 29; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_3 = PyObject_GetAttr(__pyx_2, __pyx_kp_zeros); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 29; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
Py_DECREF(__pyx_2); __pyx_2 = 0;
__pyx_2 = PyInt_FromLong(__pyx_v_width); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 27; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_4 = PyInt_FromLong(__pyx_v_height); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 27; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_5 = PyList_New(2); if (unlikely(!__pyx_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 27; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_2 = PyInt_FromLong(__pyx_v_width); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 29; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_4 = PyInt_FromLong(__pyx_v_height); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 29; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_5 = PyList_New(2); if (unlikely(!__pyx_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 29; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
PyList_SET_ITEM(__pyx_5, 0, __pyx_2);
PyList_SET_ITEM(__pyx_5, 1, __pyx_4);
__pyx_2 = 0;
__pyx_4 = 0;
__pyx_2 = PyTuple_New(1); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 27; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_2 = PyTuple_New(1); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 29; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
PyTuple_SET_ITEM(__pyx_2, 0, ((PyObject *)__pyx_5));
__pyx_5 = 0;
__pyx_4 = PyDict_New(); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 27; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_5 = __Pyx_GetName(__pyx_m, __pyx_kp_IMAGE_DTYPE); if (unlikely(!__pyx_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 27; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
if (PyDict_SetItem(__pyx_4, __pyx_kp_dtype, __pyx_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 27; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_4 = PyDict_New(); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 29; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_5 = __Pyx_GetName(__pyx_m, __pyx_kp_IMAGE_DTYPE); if (unlikely(!__pyx_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 29; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
if (PyDict_SetItem(__pyx_4, __pyx_kp_dtype, __pyx_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 29; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
Py_DECREF(__pyx_5); __pyx_5 = 0;
__pyx_5 = PyEval_CallObjectWithKeywords(__pyx_3, ((PyObject *)__pyx_2), ((PyObject *)__pyx_4)); if (unlikely(!__pyx_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 27; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_5 = PyEval_CallObjectWithKeywords(__pyx_3, ((PyObject *)__pyx_2), ((PyObject *)__pyx_4)); if (unlikely(!__pyx_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 29; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
Py_DECREF(__pyx_3); __pyx_3 = 0;
Py_DECREF(((PyObject *)__pyx_2)); __pyx_2 = 0;
Py_DECREF(((PyObject *)__pyx_4)); __pyx_4 = 0;
if (!(__Pyx_TypeTest(__pyx_5, __pyx_ptype_5numpy_ndarray))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 27; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
if (!(__Pyx_TypeTest(__pyx_5, __pyx_ptype_5numpy_ndarray))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 29; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_t_1 = ((PyArrayObject *)__pyx_5);
__Pyx_SafeReleaseBuffer(&__pyx_bstruct_out);
__pyx_t_2 = __Pyx_GetBuffer_nn___pyx_t_7scikits_5image_10morphology_6cmorph_IMAGE_DTYPE_t((PyObject*)__pyx_t_1, &__pyx_bstruct_out, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0);
@@ -681,7 +681,7 @@ static PyObject *__pyx_pf_7scikits_5image_10morphology_6cmorph_dilate(PyObject *
}
__pyx_bstride_0_out = __pyx_bstruct_out.strides[0]; __pyx_bstride_1_out = __pyx_bstruct_out.strides[1];
__pyx_bshape_0_out = __pyx_bstruct_out.shape[0]; __pyx_bshape_1_out = __pyx_bstruct_out.shape[1];
if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 27; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 29; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_t_1 = 0;
Py_DECREF(((PyObject *)__pyx_v_out));
__pyx_v_out = ((PyArrayObject *)__pyx_5);
@@ -690,7 +690,7 @@ static PyObject *__pyx_pf_7scikits_5image_10morphology_6cmorph_dilate(PyObject *
}
__pyx_L6:;
/* "/home/eads/work/repo/try/scikits.image/scikits/image/morphology/cmorph.pyx":29
/* "/home/eads/work/repo/scikits.image/scikits/image/morphology/cmorph.pyx":31
* out = np.zeros([width, height], dtype=IMAGE_DTYPE)
*
* assert out.shape[0] == image.shape[0] # <<<<<<<<<<<<<<
@@ -700,11 +700,11 @@ static PyObject *__pyx_pf_7scikits_5image_10morphology_6cmorph_dilate(PyObject *
#ifndef PYREX_WITHOUT_ASSERTIONS
if (unlikely(!((__pyx_v_out->dimensions[0]) == (__pyx_v_image->dimensions[0])))) {
PyErr_SetNone(PyExc_AssertionError);
{__pyx_filename = __pyx_f[0]; __pyx_lineno = 29; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
{__pyx_filename = __pyx_f[0]; __pyx_lineno = 31; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
#endif
/* "/home/eads/work/repo/try/scikits.image/scikits/image/morphology/cmorph.pyx":30
/* "/home/eads/work/repo/scikits.image/scikits/image/morphology/cmorph.pyx":32
*
* assert out.shape[0] == image.shape[0]
* assert out.shape[1] == image.shape[1] # <<<<<<<<<<<<<<
@@ -714,11 +714,11 @@ static PyObject *__pyx_pf_7scikits_5image_10morphology_6cmorph_dilate(PyObject *
#ifndef PYREX_WITHOUT_ASSERTIONS
if (unlikely(!((__pyx_v_out->dimensions[1]) == (__pyx_v_image->dimensions[1])))) {
PyErr_SetNone(PyExc_AssertionError);
{__pyx_filename = __pyx_f[0]; __pyx_lineno = 30; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
{__pyx_filename = __pyx_f[0]; __pyx_lineno = 32; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
#endif
/* "/home/eads/work/repo/try/scikits.image/scikits/image/morphology/cmorph.pyx":35
/* "/home/eads/work/repo/scikits.image/scikits/image/morphology/cmorph.pyx":37
* cdef IMAGE_DTYPE_t max_so_far
*
* cdef int sw = selem.shape[0], sh = selem.shape[1] # <<<<<<<<<<<<<<
@@ -728,41 +728,41 @@ static PyObject *__pyx_pf_7scikits_5image_10morphology_6cmorph_dilate(PyObject *
__pyx_v_sw = (__pyx_v_selem->dimensions[0]);
__pyx_v_sh = (__pyx_v_selem->dimensions[1]);
/* "/home/eads/work/repo/try/scikits.image/scikits/image/morphology/cmorph.pyx":37
/* "/home/eads/work/repo/scikits.image/scikits/image/morphology/cmorph.pyx":39
* cdef int sw = selem.shape[0], sh = selem.shape[1]
*
* cdef np.ndarray[np.int_t, ndim=2] xinc = np.zeros([sw, sh], dtype=np.int) # <<<<<<<<<<<<<<
* cdef np.ndarray[np.int_t, ndim=2] yinc = np.zeros([sw, sh], dtype=np.int)
*
*/
__pyx_3 = __Pyx_GetName(__pyx_m, __pyx_kp_np); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 37; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_2 = PyObject_GetAttr(__pyx_3, __pyx_kp_zeros); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 37; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_3 = __Pyx_GetName(__pyx_m, __pyx_kp_np); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 39; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_2 = PyObject_GetAttr(__pyx_3, __pyx_kp_zeros); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 39; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
Py_DECREF(__pyx_3); __pyx_3 = 0;
__pyx_4 = PyInt_FromLong(__pyx_v_sw); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 37; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_5 = PyInt_FromLong(__pyx_v_sh); if (unlikely(!__pyx_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 37; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_3 = PyList_New(2); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 37; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_4 = PyInt_FromLong(__pyx_v_sw); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 39; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_5 = PyInt_FromLong(__pyx_v_sh); if (unlikely(!__pyx_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 39; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_3 = PyList_New(2); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 39; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
PyList_SET_ITEM(__pyx_3, 0, __pyx_4);
PyList_SET_ITEM(__pyx_3, 1, __pyx_5);
__pyx_4 = 0;
__pyx_5 = 0;
__pyx_4 = PyTuple_New(1); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 37; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_4 = PyTuple_New(1); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 39; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
PyTuple_SET_ITEM(__pyx_4, 0, ((PyObject *)__pyx_3));
__pyx_3 = 0;
__pyx_5 = PyDict_New(); if (unlikely(!__pyx_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 37; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_3 = __Pyx_GetName(__pyx_m, __pyx_kp_np); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 37; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_6 = PyObject_GetAttr(__pyx_3, __pyx_kp_int); if (unlikely(!__pyx_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 37; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_5 = PyDict_New(); if (unlikely(!__pyx_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 39; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_3 = __Pyx_GetName(__pyx_m, __pyx_kp_np); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 39; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_6 = PyObject_GetAttr(__pyx_3, __pyx_kp_int); if (unlikely(!__pyx_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 39; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
Py_DECREF(__pyx_3); __pyx_3 = 0;
if (PyDict_SetItem(__pyx_5, __pyx_kp_dtype, __pyx_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 37; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
if (PyDict_SetItem(__pyx_5, __pyx_kp_dtype, __pyx_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 39; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
Py_DECREF(__pyx_6); __pyx_6 = 0;
__pyx_3 = PyEval_CallObjectWithKeywords(__pyx_2, ((PyObject *)__pyx_4), ((PyObject *)__pyx_5)); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 37; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_3 = PyEval_CallObjectWithKeywords(__pyx_2, ((PyObject *)__pyx_4), ((PyObject *)__pyx_5)); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 39; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
Py_DECREF(__pyx_2); __pyx_2 = 0;
Py_DECREF(((PyObject *)__pyx_4)); __pyx_4 = 0;
Py_DECREF(((PyObject *)__pyx_5)); __pyx_5 = 0;
if (!(__Pyx_TypeTest(__pyx_3, __pyx_ptype_5numpy_ndarray))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 37; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
if (!(__Pyx_TypeTest(__pyx_3, __pyx_ptype_5numpy_ndarray))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 39; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_t_6 = ((PyArrayObject *)__pyx_3);
if (unlikely(__Pyx_GetBuffer_nn___pyx_t_5numpy_int_t((PyObject*)__pyx_t_6, &__pyx_bstruct_xinc, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0) == -1)) {
__pyx_v_xinc = ((PyArrayObject *)Py_None); Py_INCREF(Py_None); __pyx_bstruct_xinc.buf = NULL;
{__pyx_filename = __pyx_f[0]; __pyx_lineno = 37; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
{__pyx_filename = __pyx_f[0]; __pyx_lineno = 39; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
} else {__pyx_bstride_0_xinc = __pyx_bstruct_xinc.strides[0]; __pyx_bstride_1_xinc = __pyx_bstruct_xinc.strides[1];
__pyx_bshape_0_xinc = __pyx_bstruct_xinc.shape[0]; __pyx_bshape_1_xinc = __pyx_bstruct_xinc.shape[1];
}
@@ -770,41 +770,41 @@ static PyObject *__pyx_pf_7scikits_5image_10morphology_6cmorph_dilate(PyObject *
__pyx_v_xinc = ((PyArrayObject *)__pyx_3);
__pyx_3 = 0;
/* "/home/eads/work/repo/try/scikits.image/scikits/image/morphology/cmorph.pyx":38
/* "/home/eads/work/repo/scikits.image/scikits/image/morphology/cmorph.pyx":40
*
* cdef np.ndarray[np.int_t, ndim=2] xinc = np.zeros([sw, sh], dtype=np.int)
* cdef np.ndarray[np.int_t, ndim=2] yinc = np.zeros([sw, sh], dtype=np.int) # <<<<<<<<<<<<<<
*
* for x in range(sw):
*/
__pyx_6 = __Pyx_GetName(__pyx_m, __pyx_kp_np); if (unlikely(!__pyx_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 38; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_2 = PyObject_GetAttr(__pyx_6, __pyx_kp_zeros); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 38; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_6 = __Pyx_GetName(__pyx_m, __pyx_kp_np); if (unlikely(!__pyx_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_2 = PyObject_GetAttr(__pyx_6, __pyx_kp_zeros); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
Py_DECREF(__pyx_6); __pyx_6 = 0;
__pyx_4 = PyInt_FromLong(__pyx_v_sw); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 38; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_5 = PyInt_FromLong(__pyx_v_sh); if (unlikely(!__pyx_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 38; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_3 = PyList_New(2); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 38; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_4 = PyInt_FromLong(__pyx_v_sw); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_5 = PyInt_FromLong(__pyx_v_sh); if (unlikely(!__pyx_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_3 = PyList_New(2); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
PyList_SET_ITEM(__pyx_3, 0, __pyx_4);
PyList_SET_ITEM(__pyx_3, 1, __pyx_5);
__pyx_4 = 0;
__pyx_5 = 0;
__pyx_6 = PyTuple_New(1); if (unlikely(!__pyx_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 38; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_6 = PyTuple_New(1); if (unlikely(!__pyx_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
PyTuple_SET_ITEM(__pyx_6, 0, ((PyObject *)__pyx_3));
__pyx_3 = 0;
__pyx_4 = PyDict_New(); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 38; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_5 = __Pyx_GetName(__pyx_m, __pyx_kp_np); if (unlikely(!__pyx_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 38; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_3 = PyObject_GetAttr(__pyx_5, __pyx_kp_int); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 38; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_4 = PyDict_New(); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_5 = __Pyx_GetName(__pyx_m, __pyx_kp_np); if (unlikely(!__pyx_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_3 = PyObject_GetAttr(__pyx_5, __pyx_kp_int); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
Py_DECREF(__pyx_5); __pyx_5 = 0;
if (PyDict_SetItem(__pyx_4, __pyx_kp_dtype, __pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 38; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
if (PyDict_SetItem(__pyx_4, __pyx_kp_dtype, __pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
Py_DECREF(__pyx_3); __pyx_3 = 0;
__pyx_5 = PyEval_CallObjectWithKeywords(__pyx_2, ((PyObject *)__pyx_6), ((PyObject *)__pyx_4)); if (unlikely(!__pyx_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 38; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_5 = PyEval_CallObjectWithKeywords(__pyx_2, ((PyObject *)__pyx_6), ((PyObject *)__pyx_4)); if (unlikely(!__pyx_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
Py_DECREF(__pyx_2); __pyx_2 = 0;
Py_DECREF(((PyObject *)__pyx_6)); __pyx_6 = 0;
Py_DECREF(((PyObject *)__pyx_4)); __pyx_4 = 0;
if (!(__Pyx_TypeTest(__pyx_5, __pyx_ptype_5numpy_ndarray))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 38; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
if (!(__Pyx_TypeTest(__pyx_5, __pyx_ptype_5numpy_ndarray))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_t_7 = ((PyArrayObject *)__pyx_5);
if (unlikely(__Pyx_GetBuffer_nn___pyx_t_5numpy_int_t((PyObject*)__pyx_t_7, &__pyx_bstruct_yinc, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0) == -1)) {
__pyx_v_yinc = ((PyArrayObject *)Py_None); Py_INCREF(Py_None); __pyx_bstruct_yinc.buf = NULL;
{__pyx_filename = __pyx_f[0]; __pyx_lineno = 38; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
{__pyx_filename = __pyx_f[0]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
} else {__pyx_bstride_0_yinc = __pyx_bstruct_yinc.strides[0]; __pyx_bstride_1_yinc = __pyx_bstruct_yinc.strides[1];
__pyx_bshape_0_yinc = __pyx_bstruct_yinc.shape[0]; __pyx_bshape_1_yinc = __pyx_bstruct_yinc.shape[1];
}
@@ -812,7 +812,7 @@ static PyObject *__pyx_pf_7scikits_5image_10morphology_6cmorph_dilate(PyObject *
__pyx_v_yinc = ((PyArrayObject *)__pyx_5);
__pyx_5 = 0;
/* "/home/eads/work/repo/try/scikits.image/scikits/image/morphology/cmorph.pyx":40
/* "/home/eads/work/repo/scikits.image/scikits/image/morphology/cmorph.pyx":42
* cdef np.ndarray[np.int_t, ndim=2] yinc = np.zeros([sw, sh], dtype=np.int)
*
* for x in range(sw): # <<<<<<<<<<<<<<
@@ -821,7 +821,7 @@ static PyObject *__pyx_pf_7scikits_5image_10morphology_6cmorph_dilate(PyObject *
*/
for (__pyx_v_x = 0; __pyx_v_x < __pyx_v_sw; __pyx_v_x+=1) {
/* "/home/eads/work/repo/try/scikits.image/scikits/image/morphology/cmorph.pyx":41
/* "/home/eads/work/repo/scikits.image/scikits/image/morphology/cmorph.pyx":43
*
* for x in range(sw):
* for y in range(sh): # <<<<<<<<<<<<<<
@@ -830,7 +830,7 @@ static PyObject *__pyx_pf_7scikits_5image_10morphology_6cmorph_dilate(PyObject *
*/
for (__pyx_v_y = 0; __pyx_v_y < __pyx_v_sh; __pyx_v_y+=1) {
/* "/home/eads/work/repo/try/scikits.image/scikits/image/morphology/cmorph.pyx":42
/* "/home/eads/work/repo/scikits.image/scikits/image/morphology/cmorph.pyx":44
* for x in range(sw):
* for y in range(sh):
* xinc[x, y] = (x - hw) # <<<<<<<<<<<<<<
@@ -843,7 +843,7 @@ static PyObject *__pyx_pf_7scikits_5image_10morphology_6cmorph_dilate(PyObject *
if (__pyx_t_8 < 0) __pyx_t_8 += __pyx_bshape_1_xinc;
*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_int_t *, __pyx_bstruct_xinc.buf, __pyx_t_2, __pyx_bstride_0_xinc, __pyx_t_8, __pyx_bstride_1_xinc) = (__pyx_v_x - __pyx_v_hw);
/* "/home/eads/work/repo/try/scikits.image/scikits/image/morphology/cmorph.pyx":43
/* "/home/eads/work/repo/scikits.image/scikits/image/morphology/cmorph.pyx":45
* for y in range(sh):
* xinc[x, y] = (x - hw)
* yinc[x, y] = (y - hh) # <<<<<<<<<<<<<<
@@ -858,7 +858,7 @@ static PyObject *__pyx_pf_7scikits_5image_10morphology_6cmorph_dilate(PyObject *
}
}
/* "/home/eads/work/repo/try/scikits.image/scikits/image/morphology/cmorph.pyx":46
/* "/home/eads/work/repo/scikits.image/scikits/image/morphology/cmorph.pyx":48
*
*
* for x in range(width): # <<<<<<<<<<<<<<
@@ -867,35 +867,35 @@ static PyObject *__pyx_pf_7scikits_5image_10morphology_6cmorph_dilate(PyObject *
*/
for (__pyx_v_x = 0; __pyx_v_x < __pyx_v_width; __pyx_v_x+=1) {
/* "/home/eads/work/repo/try/scikits.image/scikits/image/morphology/cmorph.pyx":47
/* "/home/eads/work/repo/scikits.image/scikits/image/morphology/cmorph.pyx":49
*
* for x in range(width):
* for y in range(height): # <<<<<<<<<<<<<<
* max_so_far = 0
* #for cx in range(int_max(0, x - hw), int_min(x + hw, out.shape[0])):
* for cx in range(0, sw):
*/
for (__pyx_v_y = 0; __pyx_v_y < __pyx_v_height; __pyx_v_y+=1) {
/* "/home/eads/work/repo/try/scikits.image/scikits/image/morphology/cmorph.pyx":48
/* "/home/eads/work/repo/scikits.image/scikits/image/morphology/cmorph.pyx":50
* for x in range(width):
* for y in range(height):
* max_so_far = 0 # <<<<<<<<<<<<<<
* #for cx in range(int_max(0, x - hw), int_min(x + hw, out.shape[0])):
* #for cy in range(int_max(0, y - hh), int_min(y + hh, out.shape[1])):
* for cx in range(0, sw):
* for cy in range(0, sh):
*/
__pyx_v_max_so_far = 0;
/* "/home/eads/work/repo/try/scikits.image/scikits/image/morphology/cmorph.pyx":51
* #for cx in range(int_max(0, x - hw), int_min(x + hw, out.shape[0])):
* #for cy in range(int_max(0, y - hh), int_min(y + hh, out.shape[1])):
/* "/home/eads/work/repo/scikits.image/scikits/image/morphology/cmorph.pyx":51
* for y in range(height):
* max_so_far = 0
* for cx in range(0, sw): # <<<<<<<<<<<<<<
* for cy in range(0, sh):
* ix = x + xinc[cx,cy]
*/
for (__pyx_v_cx = 0; __pyx_v_cx < __pyx_v_sw; __pyx_v_cx+=1) {
/* "/home/eads/work/repo/try/scikits.image/scikits/image/morphology/cmorph.pyx":52
* #for cy in range(int_max(0, y - hh), int_min(y + hh, out.shape[1])):
/* "/home/eads/work/repo/scikits.image/scikits/image/morphology/cmorph.pyx":52
* max_so_far = 0
* for cx in range(0, sw):
* for cy in range(0, sh): # <<<<<<<<<<<<<<
* ix = x + xinc[cx,cy]
@@ -903,12 +903,12 @@ static PyObject *__pyx_pf_7scikits_5image_10morphology_6cmorph_dilate(PyObject *
*/
for (__pyx_v_cy = 0; __pyx_v_cy < __pyx_v_sh; __pyx_v_cy+=1) {
/* "/home/eads/work/repo/try/scikits.image/scikits/image/morphology/cmorph.pyx":53
/* "/home/eads/work/repo/scikits.image/scikits/image/morphology/cmorph.pyx":53
* for cx in range(0, sw):
* for cy in range(0, sh):
* ix = x + xinc[cx,cy] # <<<<<<<<<<<<<<
* iy = y + yinc[cx,cy]
* if ix>=0 and iy>=0 and ix < width and iy < height and selem[cx, cy] == 1 and image[ix,iy] > max_so_far:
* if ix>=0 and iy>=0 and ix < width and iy < height \
*/
__pyx_t_11 = __pyx_v_cx;
__pyx_t_12 = __pyx_v_cy;
@@ -916,12 +916,12 @@ static PyObject *__pyx_pf_7scikits_5image_10morphology_6cmorph_dilate(PyObject *
if (__pyx_t_12 < 0) __pyx_t_12 += __pyx_bshape_1_xinc;
__pyx_v_ix = (__pyx_v_x + (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_int_t *, __pyx_bstruct_xinc.buf, __pyx_t_11, __pyx_bstride_0_xinc, __pyx_t_12, __pyx_bstride_1_xinc)));
/* "/home/eads/work/repo/try/scikits.image/scikits/image/morphology/cmorph.pyx":54
/* "/home/eads/work/repo/scikits.image/scikits/image/morphology/cmorph.pyx":54
* for cy in range(0, sh):
* ix = x + xinc[cx,cy]
* iy = y + yinc[cx,cy] # <<<<<<<<<<<<<<
* if ix>=0 and iy>=0 and ix < width and iy < height and selem[cx, cy] == 1 and image[ix,iy] > max_so_far:
* max_so_far = image[ix,iy]
* if ix>=0 and iy>=0 and ix < width and iy < height \
* and selem[cx, cy] == 1 \
*/
__pyx_t_13 = __pyx_v_cx;
__pyx_t_14 = __pyx_v_cy;
@@ -929,12 +929,12 @@ static PyObject *__pyx_pf_7scikits_5image_10morphology_6cmorph_dilate(PyObject *
if (__pyx_t_14 < 0) __pyx_t_14 += __pyx_bshape_1_yinc;
__pyx_v_iy = (__pyx_v_y + (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_int_t *, __pyx_bstruct_yinc.buf, __pyx_t_13, __pyx_bstride_0_yinc, __pyx_t_14, __pyx_bstride_1_yinc)));
/* "/home/eads/work/repo/try/scikits.image/scikits/image/morphology/cmorph.pyx":55
/* "/home/eads/work/repo/scikits.image/scikits/image/morphology/cmorph.pyx":55
* ix = x + xinc[cx,cy]
* iy = y + yinc[cx,cy]
* if ix>=0 and iy>=0 and ix < width and iy < height and selem[cx, cy] == 1 and image[ix,iy] > max_so_far: # <<<<<<<<<<<<<<
* max_so_far = image[ix,iy]
* out[x,y] = max_so_far
* if ix>=0 and iy>=0 and ix < width and iy < height \ # <<<<<<<<<<<<<<
* and selem[cx, cy] == 1 \
* and image[ix,iy] > max_so_far:
*/
__pyx_1 = (__pyx_v_ix >= 0);
if (__pyx_1) {
@@ -942,6 +942,14 @@ static PyObject *__pyx_pf_7scikits_5image_10morphology_6cmorph_dilate(PyObject *
if (__pyx_1) {
__pyx_1 = (__pyx_v_ix < __pyx_v_width);
if (__pyx_1) {
/* "/home/eads/work/repo/scikits.image/scikits/image/morphology/cmorph.pyx":56
* iy = y + yinc[cx,cy]
* if ix>=0 and iy>=0 and ix < width and iy < height \
* and selem[cx, cy] == 1 \ # <<<<<<<<<<<<<<
* and image[ix,iy] > max_so_far:
* max_so_far = image[ix,iy]
*/
__pyx_1 = (__pyx_v_iy < __pyx_v_height);
if (__pyx_1) {
__pyx_t_15 = __pyx_v_cx;
@@ -950,6 +958,14 @@ static PyObject *__pyx_pf_7scikits_5image_10morphology_6cmorph_dilate(PyObject *
if (__pyx_t_16 < 0) __pyx_t_16 += __pyx_bshape_1_selem;
__pyx_1 = ((*__Pyx_BufPtrStrided2d(__pyx_t_7scikits_5image_10morphology_6cmorph_IMAGE_DTYPE_t *, __pyx_bstruct_selem.buf, __pyx_t_15, __pyx_bstride_0_selem, __pyx_t_16, __pyx_bstride_1_selem)) == 1);
if (__pyx_1) {
/* "/home/eads/work/repo/scikits.image/scikits/image/morphology/cmorph.pyx":57
* if ix>=0 and iy>=0 and ix < width and iy < height \
* and selem[cx, cy] == 1 \
* and image[ix,iy] > max_so_far: # <<<<<<<<<<<<<<
* max_so_far = image[ix,iy]
* out[x,y] = max_so_far
*/
__pyx_t_17 = __pyx_v_ix;
__pyx_t_18 = __pyx_v_iy;
if (__pyx_t_17 < 0) __pyx_t_17 += __pyx_bshape_0_image;
@@ -962,9 +978,9 @@ static PyObject *__pyx_pf_7scikits_5image_10morphology_6cmorph_dilate(PyObject *
}
if (__pyx_1) {
/* "/home/eads/work/repo/try/scikits.image/scikits/image/morphology/cmorph.pyx":56
* iy = y + yinc[cx,cy]
* if ix>=0 and iy>=0 and ix < width and iy < height and selem[cx, cy] == 1 and image[ix,iy] > max_so_far:
/* "/home/eads/work/repo/scikits.image/scikits/image/morphology/cmorph.pyx":58
* and selem[cx, cy] == 1 \
* and image[ix,iy] > max_so_far:
* max_so_far = image[ix,iy] # <<<<<<<<<<<<<<
* out[x,y] = max_so_far
*
@@ -980,8 +996,8 @@ static PyObject *__pyx_pf_7scikits_5image_10morphology_6cmorph_dilate(PyObject *
}
}
/* "/home/eads/work/repo/try/scikits.image/scikits/image/morphology/cmorph.pyx":57
* if ix>=0 and iy>=0 and ix < width and iy < height and selem[cx, cy] == 1 and image[ix,iy] > max_so_far:
/* "/home/eads/work/repo/scikits.image/scikits/image/morphology/cmorph.pyx":59
* and image[ix,iy] > max_so_far:
* max_so_far = image[ix,iy]
* out[x,y] = max_so_far # <<<<<<<<<<<<<<
*
@@ -995,7 +1011,7 @@ static PyObject *__pyx_pf_7scikits_5image_10morphology_6cmorph_dilate(PyObject *
}
}
/* "/home/eads/work/repo/try/scikits.image/scikits/image/morphology/cmorph.pyx":59
/* "/home/eads/work/repo/scikits.image/scikits/image/morphology/cmorph.pyx":61
* out[x,y] = max_so_far
*
* return out # <<<<<<<<<<<<<<
@@ -1038,12 +1054,12 @@ static PyObject *__pyx_pf_7scikits_5image_10morphology_6cmorph_dilate(PyObject *
return __pyx_r;
}
/* "/home/eads/work/repo/try/scikits.image/scikits/image/morphology/cmorph.pyx":63
/* "/home/eads/work/repo/scikits.image/scikits/image/morphology/cmorph.pyx":65
*
* @cython.boundscheck(False)
* def erode(np.ndarray[IMAGE_DTYPE_t, ndim=2] image not None, np.ndarray[IMAGE_DTYPE_t, ndim=2] selem not None, np.ndarray[IMAGE_DTYPE_t, ndim=2] out): # <<<<<<<<<<<<<<
* cdef int hw = selem.shape[0] / 2
* cdef int hh = selem.shape[1] / 2
* def erode(np.ndarray[IMAGE_DTYPE_t, ndim=2] image not None, # <<<<<<<<<<<<<<
* np.ndarray[IMAGE_DTYPE_t, ndim=2] selem not None,
* np.ndarray[IMAGE_DTYPE_t, ndim=2] out):
*/
static PyObject *__pyx_pf_7scikits_5image_10morphology_6cmorph_erode(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
@@ -1141,17 +1157,17 @@ static PyObject *__pyx_pf_7scikits_5image_10morphology_6cmorph_erode(PyObject *_
values[1] = PyDict_GetItem(__pyx_kwds, __pyx_kp_selem);
if (likely(values[1])) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("erode", 1, 3, 3, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
__Pyx_RaiseArgtupleInvalid("erode", 1, 3, 3, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
}
case 2:
values[2] = PyDict_GetItem(__pyx_kwds, __pyx_kp_out);
if (likely(values[2])) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("erode", 1, 3, 3, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
__Pyx_RaiseArgtupleInvalid("erode", 1, 3, 3, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "erode") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "erode") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
}
__pyx_v_image = ((PyArrayObject *)values[0]);
__pyx_v_selem = ((PyArrayObject *)values[1]);
@@ -1165,7 +1181,7 @@ static PyObject *__pyx_pf_7scikits_5image_10morphology_6cmorph_erode(PyObject *_
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("erode", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
__Pyx_RaiseArgtupleInvalid("erode", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
__pyx_L3_error:;
__Pyx_AddTraceback("scikits.image.morphology.cmorph.erode");
return NULL;
@@ -1176,30 +1192,30 @@ static PyObject *__pyx_pf_7scikits_5image_10morphology_6cmorph_erode(PyObject *_
__pyx_bstruct_image.buf = NULL;
__pyx_bstruct_selem.buf = NULL;
__pyx_bstruct_out.buf = NULL;
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_image), __pyx_ptype_5numpy_ndarray, 0, "image", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_selem), __pyx_ptype_5numpy_ndarray, 0, "selem", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_out), __pyx_ptype_5numpy_ndarray, 1, "out", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
if (unlikely(__Pyx_GetBuffer_nn___pyx_t_7scikits_5image_10morphology_6cmorph_IMAGE_DTYPE_t((PyObject*)__pyx_v_image, &__pyx_bstruct_image, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0) == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_image), __pyx_ptype_5numpy_ndarray, 0, "image", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_selem), __pyx_ptype_5numpy_ndarray, 0, "selem", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_out), __pyx_ptype_5numpy_ndarray, 1, "out", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 67; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
if (unlikely(__Pyx_GetBuffer_nn___pyx_t_7scikits_5image_10morphology_6cmorph_IMAGE_DTYPE_t((PyObject*)__pyx_v_image, &__pyx_bstruct_image, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0) == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_bstride_0_image = __pyx_bstruct_image.strides[0]; __pyx_bstride_1_image = __pyx_bstruct_image.strides[1];
__pyx_bshape_0_image = __pyx_bstruct_image.shape[0]; __pyx_bshape_1_image = __pyx_bstruct_image.shape[1];
if (unlikely(__Pyx_GetBuffer_nn___pyx_t_7scikits_5image_10morphology_6cmorph_IMAGE_DTYPE_t((PyObject*)__pyx_v_selem, &__pyx_bstruct_selem, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0) == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
if (unlikely(__Pyx_GetBuffer_nn___pyx_t_7scikits_5image_10morphology_6cmorph_IMAGE_DTYPE_t((PyObject*)__pyx_v_selem, &__pyx_bstruct_selem, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0) == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_bstride_0_selem = __pyx_bstruct_selem.strides[0]; __pyx_bstride_1_selem = __pyx_bstruct_selem.strides[1];
__pyx_bshape_0_selem = __pyx_bstruct_selem.shape[0]; __pyx_bshape_1_selem = __pyx_bstruct_selem.shape[1];
if (unlikely(__Pyx_GetBuffer_nn___pyx_t_7scikits_5image_10morphology_6cmorph_IMAGE_DTYPE_t((PyObject*)__pyx_v_out, &__pyx_bstruct_out, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0) == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
if (unlikely(__Pyx_GetBuffer_nn___pyx_t_7scikits_5image_10morphology_6cmorph_IMAGE_DTYPE_t((PyObject*)__pyx_v_out, &__pyx_bstruct_out, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0) == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_bstride_0_out = __pyx_bstruct_out.strides[0]; __pyx_bstride_1_out = __pyx_bstruct_out.strides[1];
__pyx_bshape_0_out = __pyx_bstruct_out.shape[0]; __pyx_bshape_1_out = __pyx_bstruct_out.shape[1];
/* "/home/eads/work/repo/try/scikits.image/scikits/image/morphology/cmorph.pyx":64
* @cython.boundscheck(False)
* def erode(np.ndarray[IMAGE_DTYPE_t, ndim=2] image not None, np.ndarray[IMAGE_DTYPE_t, ndim=2] selem not None, np.ndarray[IMAGE_DTYPE_t, ndim=2] out):
/* "/home/eads/work/repo/scikits.image/scikits/image/morphology/cmorph.pyx":68
* np.ndarray[IMAGE_DTYPE_t, ndim=2] selem not None,
* np.ndarray[IMAGE_DTYPE_t, ndim=2] out):
* cdef int hw = selem.shape[0] / 2 # <<<<<<<<<<<<<<
* cdef int hh = selem.shape[1] / 2
* cdef int width = image.shape[0], height = image.shape[1]
*/
__pyx_v_hw = ((__pyx_v_selem->dimensions[0]) / 2);
/* "/home/eads/work/repo/try/scikits.image/scikits/image/morphology/cmorph.pyx":65
* def erode(np.ndarray[IMAGE_DTYPE_t, ndim=2] image not None, np.ndarray[IMAGE_DTYPE_t, ndim=2] selem not None, np.ndarray[IMAGE_DTYPE_t, ndim=2] out):
/* "/home/eads/work/repo/scikits.image/scikits/image/morphology/cmorph.pyx":69
* np.ndarray[IMAGE_DTYPE_t, ndim=2] out):
* cdef int hw = selem.shape[0] / 2
* cdef int hh = selem.shape[1] / 2 # <<<<<<<<<<<<<<
* cdef int width = image.shape[0], height = image.shape[1]
@@ -1207,7 +1223,7 @@ static PyObject *__pyx_pf_7scikits_5image_10morphology_6cmorph_erode(PyObject *_
*/
__pyx_v_hh = ((__pyx_v_selem->dimensions[1]) / 2);
/* "/home/eads/work/repo/try/scikits.image/scikits/image/morphology/cmorph.pyx":66
/* "/home/eads/work/repo/scikits.image/scikits/image/morphology/cmorph.pyx":70
* cdef int hw = selem.shape[0] / 2
* cdef int hh = selem.shape[1] / 2
* cdef int width = image.shape[0], height = image.shape[1] # <<<<<<<<<<<<<<
@@ -1217,7 +1233,7 @@ static PyObject *__pyx_pf_7scikits_5image_10morphology_6cmorph_erode(PyObject *_
__pyx_v_width = (__pyx_v_image->dimensions[0]);
__pyx_v_height = (__pyx_v_image->dimensions[1]);
/* "/home/eads/work/repo/try/scikits.image/scikits/image/morphology/cmorph.pyx":67
/* "/home/eads/work/repo/scikits.image/scikits/image/morphology/cmorph.pyx":71
* cdef int hh = selem.shape[1] / 2
* cdef int width = image.shape[0], height = image.shape[1]
* if out is None: # <<<<<<<<<<<<<<
@@ -1227,35 +1243,35 @@ static PyObject *__pyx_pf_7scikits_5image_10morphology_6cmorph_erode(PyObject *_
__pyx_1 = (((PyObject *)__pyx_v_out) == Py_None);
if (__pyx_1) {
/* "/home/eads/work/repo/try/scikits.image/scikits/image/morphology/cmorph.pyx":68
/* "/home/eads/work/repo/scikits.image/scikits/image/morphology/cmorph.pyx":72
* cdef int width = image.shape[0], height = image.shape[1]
* if out is None:
* out = np.zeros([width, height], dtype=IMAGE_DTYPE) # <<<<<<<<<<<<<<
*
* assert out.shape[0] == image.shape[0]
*/
__pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_np); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 68; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_3 = PyObject_GetAttr(__pyx_2, __pyx_kp_zeros); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 68; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_np); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_3 = PyObject_GetAttr(__pyx_2, __pyx_kp_zeros); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
Py_DECREF(__pyx_2); __pyx_2 = 0;
__pyx_2 = PyInt_FromLong(__pyx_v_width); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 68; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_4 = PyInt_FromLong(__pyx_v_height); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 68; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_5 = PyList_New(2); if (unlikely(!__pyx_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 68; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_2 = PyInt_FromLong(__pyx_v_width); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_4 = PyInt_FromLong(__pyx_v_height); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_5 = PyList_New(2); if (unlikely(!__pyx_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
PyList_SET_ITEM(__pyx_5, 0, __pyx_2);
PyList_SET_ITEM(__pyx_5, 1, __pyx_4);
__pyx_2 = 0;
__pyx_4 = 0;
__pyx_2 = PyTuple_New(1); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 68; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_2 = PyTuple_New(1); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
PyTuple_SET_ITEM(__pyx_2, 0, ((PyObject *)__pyx_5));
__pyx_5 = 0;
__pyx_4 = PyDict_New(); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 68; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_5 = __Pyx_GetName(__pyx_m, __pyx_kp_IMAGE_DTYPE); if (unlikely(!__pyx_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 68; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
if (PyDict_SetItem(__pyx_4, __pyx_kp_dtype, __pyx_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 68; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_4 = PyDict_New(); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_5 = __Pyx_GetName(__pyx_m, __pyx_kp_IMAGE_DTYPE); if (unlikely(!__pyx_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
if (PyDict_SetItem(__pyx_4, __pyx_kp_dtype, __pyx_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
Py_DECREF(__pyx_5); __pyx_5 = 0;
__pyx_5 = PyEval_CallObjectWithKeywords(__pyx_3, ((PyObject *)__pyx_2), ((PyObject *)__pyx_4)); if (unlikely(!__pyx_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 68; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_5 = PyEval_CallObjectWithKeywords(__pyx_3, ((PyObject *)__pyx_2), ((PyObject *)__pyx_4)); if (unlikely(!__pyx_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
Py_DECREF(__pyx_3); __pyx_3 = 0;
Py_DECREF(((PyObject *)__pyx_2)); __pyx_2 = 0;
Py_DECREF(((PyObject *)__pyx_4)); __pyx_4 = 0;
if (!(__Pyx_TypeTest(__pyx_5, __pyx_ptype_5numpy_ndarray))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 68; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
if (!(__Pyx_TypeTest(__pyx_5, __pyx_ptype_5numpy_ndarray))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_t_1 = ((PyArrayObject *)__pyx_5);
__Pyx_SafeReleaseBuffer(&__pyx_bstruct_out);
__pyx_t_2 = __Pyx_GetBuffer_nn___pyx_t_7scikits_5image_10morphology_6cmorph_IMAGE_DTYPE_t((PyObject*)__pyx_t_1, &__pyx_bstruct_out, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0);
@@ -1271,7 +1287,7 @@ static PyObject *__pyx_pf_7scikits_5image_10morphology_6cmorph_erode(PyObject *_
}
__pyx_bstride_0_out = __pyx_bstruct_out.strides[0]; __pyx_bstride_1_out = __pyx_bstruct_out.strides[1];
__pyx_bshape_0_out = __pyx_bstruct_out.shape[0]; __pyx_bshape_1_out = __pyx_bstruct_out.shape[1];
if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 68; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_t_1 = 0;
Py_DECREF(((PyObject *)__pyx_v_out));
__pyx_v_out = ((PyArrayObject *)__pyx_5);
@@ -1280,7 +1296,7 @@ static PyObject *__pyx_pf_7scikits_5image_10morphology_6cmorph_erode(PyObject *_
}
__pyx_L6:;
/* "/home/eads/work/repo/try/scikits.image/scikits/image/morphology/cmorph.pyx":70
/* "/home/eads/work/repo/scikits.image/scikits/image/morphology/cmorph.pyx":74
* out = np.zeros([width, height], dtype=IMAGE_DTYPE)
*
* assert out.shape[0] == image.shape[0] # <<<<<<<<<<<<<<
@@ -1290,11 +1306,11 @@ static PyObject *__pyx_pf_7scikits_5image_10morphology_6cmorph_erode(PyObject *_
#ifndef PYREX_WITHOUT_ASSERTIONS
if (unlikely(!((__pyx_v_out->dimensions[0]) == (__pyx_v_image->dimensions[0])))) {
PyErr_SetNone(PyExc_AssertionError);
{__pyx_filename = __pyx_f[0]; __pyx_lineno = 70; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
{__pyx_filename = __pyx_f[0]; __pyx_lineno = 74; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
#endif
/* "/home/eads/work/repo/try/scikits.image/scikits/image/morphology/cmorph.pyx":71
/* "/home/eads/work/repo/scikits.image/scikits/image/morphology/cmorph.pyx":75
*
* assert out.shape[0] == image.shape[0]
* assert out.shape[1] == image.shape[1] # <<<<<<<<<<<<<<
@@ -1304,11 +1320,11 @@ static PyObject *__pyx_pf_7scikits_5image_10morphology_6cmorph_erode(PyObject *_
#ifndef PYREX_WITHOUT_ASSERTIONS
if (unlikely(!((__pyx_v_out->dimensions[1]) == (__pyx_v_image->dimensions[1])))) {
PyErr_SetNone(PyExc_AssertionError);
{__pyx_filename = __pyx_f[0]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
{__pyx_filename = __pyx_f[0]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
#endif
/* "/home/eads/work/repo/try/scikits.image/scikits/image/morphology/cmorph.pyx":76
/* "/home/eads/work/repo/scikits.image/scikits/image/morphology/cmorph.pyx":80
* cdef IMAGE_DTYPE_t min_so_far
*
* cdef int sw = selem.shape[0], sh = selem.shape[1] # <<<<<<<<<<<<<<
@@ -1318,41 +1334,41 @@ static PyObject *__pyx_pf_7scikits_5image_10morphology_6cmorph_erode(PyObject *_
__pyx_v_sw = (__pyx_v_selem->dimensions[0]);
__pyx_v_sh = (__pyx_v_selem->dimensions[1]);
/* "/home/eads/work/repo/try/scikits.image/scikits/image/morphology/cmorph.pyx":78
/* "/home/eads/work/repo/scikits.image/scikits/image/morphology/cmorph.pyx":82
* cdef int sw = selem.shape[0], sh = selem.shape[1]
*
* cdef np.ndarray[np.int_t, ndim=2] xinc = np.zeros([sw, sh], dtype=np.int) # <<<<<<<<<<<<<<
* cdef np.ndarray[np.int_t, ndim=2] yinc = np.zeros([sw, sh], dtype=np.int)
*
*/
__pyx_3 = __Pyx_GetName(__pyx_m, __pyx_kp_np); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_2 = PyObject_GetAttr(__pyx_3, __pyx_kp_zeros); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_3 = __Pyx_GetName(__pyx_m, __pyx_kp_np); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_2 = PyObject_GetAttr(__pyx_3, __pyx_kp_zeros); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
Py_DECREF(__pyx_3); __pyx_3 = 0;
__pyx_4 = PyInt_FromLong(__pyx_v_sw); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_5 = PyInt_FromLong(__pyx_v_sh); if (unlikely(!__pyx_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_3 = PyList_New(2); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_4 = PyInt_FromLong(__pyx_v_sw); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_5 = PyInt_FromLong(__pyx_v_sh); if (unlikely(!__pyx_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_3 = PyList_New(2); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
PyList_SET_ITEM(__pyx_3, 0, __pyx_4);
PyList_SET_ITEM(__pyx_3, 1, __pyx_5);
__pyx_4 = 0;
__pyx_5 = 0;
__pyx_4 = PyTuple_New(1); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_4 = PyTuple_New(1); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
PyTuple_SET_ITEM(__pyx_4, 0, ((PyObject *)__pyx_3));
__pyx_3 = 0;
__pyx_5 = PyDict_New(); if (unlikely(!__pyx_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_3 = __Pyx_GetName(__pyx_m, __pyx_kp_np); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_6 = PyObject_GetAttr(__pyx_3, __pyx_kp_int); if (unlikely(!__pyx_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_5 = PyDict_New(); if (unlikely(!__pyx_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_3 = __Pyx_GetName(__pyx_m, __pyx_kp_np); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_6 = PyObject_GetAttr(__pyx_3, __pyx_kp_int); if (unlikely(!__pyx_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
Py_DECREF(__pyx_3); __pyx_3 = 0;
if (PyDict_SetItem(__pyx_5, __pyx_kp_dtype, __pyx_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
if (PyDict_SetItem(__pyx_5, __pyx_kp_dtype, __pyx_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
Py_DECREF(__pyx_6); __pyx_6 = 0;
__pyx_3 = PyEval_CallObjectWithKeywords(__pyx_2, ((PyObject *)__pyx_4), ((PyObject *)__pyx_5)); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_3 = PyEval_CallObjectWithKeywords(__pyx_2, ((PyObject *)__pyx_4), ((PyObject *)__pyx_5)); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
Py_DECREF(__pyx_2); __pyx_2 = 0;
Py_DECREF(((PyObject *)__pyx_4)); __pyx_4 = 0;
Py_DECREF(((PyObject *)__pyx_5)); __pyx_5 = 0;
if (!(__Pyx_TypeTest(__pyx_3, __pyx_ptype_5numpy_ndarray))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
if (!(__Pyx_TypeTest(__pyx_3, __pyx_ptype_5numpy_ndarray))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_t_6 = ((PyArrayObject *)__pyx_3);
if (unlikely(__Pyx_GetBuffer_nn___pyx_t_5numpy_int_t((PyObject*)__pyx_t_6, &__pyx_bstruct_xinc, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0) == -1)) {
__pyx_v_xinc = ((PyArrayObject *)Py_None); Py_INCREF(Py_None); __pyx_bstruct_xinc.buf = NULL;
{__pyx_filename = __pyx_f[0]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
{__pyx_filename = __pyx_f[0]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
} else {__pyx_bstride_0_xinc = __pyx_bstruct_xinc.strides[0]; __pyx_bstride_1_xinc = __pyx_bstruct_xinc.strides[1];
__pyx_bshape_0_xinc = __pyx_bstruct_xinc.shape[0]; __pyx_bshape_1_xinc = __pyx_bstruct_xinc.shape[1];
}
@@ -1360,41 +1376,41 @@ static PyObject *__pyx_pf_7scikits_5image_10morphology_6cmorph_erode(PyObject *_
__pyx_v_xinc = ((PyArrayObject *)__pyx_3);
__pyx_3 = 0;
/* "/home/eads/work/repo/try/scikits.image/scikits/image/morphology/cmorph.pyx":79
/* "/home/eads/work/repo/scikits.image/scikits/image/morphology/cmorph.pyx":83
*
* cdef np.ndarray[np.int_t, ndim=2] xinc = np.zeros([sw, sh], dtype=np.int)
* cdef np.ndarray[np.int_t, ndim=2] yinc = np.zeros([sw, sh], dtype=np.int) # <<<<<<<<<<<<<<
*
* for x in range(sw):
*/
__pyx_6 = __Pyx_GetName(__pyx_m, __pyx_kp_np); if (unlikely(!__pyx_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_2 = PyObject_GetAttr(__pyx_6, __pyx_kp_zeros); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_6 = __Pyx_GetName(__pyx_m, __pyx_kp_np); if (unlikely(!__pyx_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 83; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_2 = PyObject_GetAttr(__pyx_6, __pyx_kp_zeros); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 83; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
Py_DECREF(__pyx_6); __pyx_6 = 0;
__pyx_4 = PyInt_FromLong(__pyx_v_sw); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_5 = PyInt_FromLong(__pyx_v_sh); if (unlikely(!__pyx_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_3 = PyList_New(2); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_4 = PyInt_FromLong(__pyx_v_sw); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 83; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_5 = PyInt_FromLong(__pyx_v_sh); if (unlikely(!__pyx_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 83; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_3 = PyList_New(2); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 83; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
PyList_SET_ITEM(__pyx_3, 0, __pyx_4);
PyList_SET_ITEM(__pyx_3, 1, __pyx_5);
__pyx_4 = 0;
__pyx_5 = 0;
__pyx_6 = PyTuple_New(1); if (unlikely(!__pyx_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_6 = PyTuple_New(1); if (unlikely(!__pyx_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 83; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
PyTuple_SET_ITEM(__pyx_6, 0, ((PyObject *)__pyx_3));
__pyx_3 = 0;
__pyx_4 = PyDict_New(); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_5 = __Pyx_GetName(__pyx_m, __pyx_kp_np); if (unlikely(!__pyx_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_3 = PyObject_GetAttr(__pyx_5, __pyx_kp_int); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_4 = PyDict_New(); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 83; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_5 = __Pyx_GetName(__pyx_m, __pyx_kp_np); if (unlikely(!__pyx_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 83; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_3 = PyObject_GetAttr(__pyx_5, __pyx_kp_int); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 83; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
Py_DECREF(__pyx_5); __pyx_5 = 0;
if (PyDict_SetItem(__pyx_4, __pyx_kp_dtype, __pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
if (PyDict_SetItem(__pyx_4, __pyx_kp_dtype, __pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 83; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
Py_DECREF(__pyx_3); __pyx_3 = 0;
__pyx_5 = PyEval_CallObjectWithKeywords(__pyx_2, ((PyObject *)__pyx_6), ((PyObject *)__pyx_4)); if (unlikely(!__pyx_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_5 = PyEval_CallObjectWithKeywords(__pyx_2, ((PyObject *)__pyx_6), ((PyObject *)__pyx_4)); if (unlikely(!__pyx_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 83; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
Py_DECREF(__pyx_2); __pyx_2 = 0;
Py_DECREF(((PyObject *)__pyx_6)); __pyx_6 = 0;
Py_DECREF(((PyObject *)__pyx_4)); __pyx_4 = 0;
if (!(__Pyx_TypeTest(__pyx_5, __pyx_ptype_5numpy_ndarray))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
if (!(__Pyx_TypeTest(__pyx_5, __pyx_ptype_5numpy_ndarray))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 83; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__pyx_t_7 = ((PyArrayObject *)__pyx_5);
if (unlikely(__Pyx_GetBuffer_nn___pyx_t_5numpy_int_t((PyObject*)__pyx_t_7, &__pyx_bstruct_yinc, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0) == -1)) {
__pyx_v_yinc = ((PyArrayObject *)Py_None); Py_INCREF(Py_None); __pyx_bstruct_yinc.buf = NULL;
{__pyx_filename = __pyx_f[0]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
{__pyx_filename = __pyx_f[0]; __pyx_lineno = 83; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
} else {__pyx_bstride_0_yinc = __pyx_bstruct_yinc.strides[0]; __pyx_bstride_1_yinc = __pyx_bstruct_yinc.strides[1];
__pyx_bshape_0_yinc = __pyx_bstruct_yinc.shape[0]; __pyx_bshape_1_yinc = __pyx_bstruct_yinc.shape[1];
}
@@ -1402,7 +1418,7 @@ static PyObject *__pyx_pf_7scikits_5image_10morphology_6cmorph_erode(PyObject *_
__pyx_v_yinc = ((PyArrayObject *)__pyx_5);
__pyx_5 = 0;
/* "/home/eads/work/repo/try/scikits.image/scikits/image/morphology/cmorph.pyx":81
/* "/home/eads/work/repo/scikits.image/scikits/image/morphology/cmorph.pyx":85
* cdef np.ndarray[np.int_t, ndim=2] yinc = np.zeros([sw, sh], dtype=np.int)
*
* for x in range(sw): # <<<<<<<<<<<<<<
@@ -1411,7 +1427,7 @@ static PyObject *__pyx_pf_7scikits_5image_10morphology_6cmorph_erode(PyObject *_
*/
for (__pyx_v_x = 0; __pyx_v_x < __pyx_v_sw; __pyx_v_x+=1) {
/* "/home/eads/work/repo/try/scikits.image/scikits/image/morphology/cmorph.pyx":82
/* "/home/eads/work/repo/scikits.image/scikits/image/morphology/cmorph.pyx":86
*
* for x in range(sw):
* for y in range(sh): # <<<<<<<<<<<<<<
@@ -1420,7 +1436,7 @@ static PyObject *__pyx_pf_7scikits_5image_10morphology_6cmorph_erode(PyObject *_
*/
for (__pyx_v_y = 0; __pyx_v_y < __pyx_v_sh; __pyx_v_y+=1) {
/* "/home/eads/work/repo/try/scikits.image/scikits/image/morphology/cmorph.pyx":83
/* "/home/eads/work/repo/scikits.image/scikits/image/morphology/cmorph.pyx":87
* for x in range(sw):
* for y in range(sh):
* xinc[x, y] = (x - hw) # <<<<<<<<<<<<<<
@@ -1433,7 +1449,7 @@ static PyObject *__pyx_pf_7scikits_5image_10morphology_6cmorph_erode(PyObject *_
if (__pyx_t_8 < 0) __pyx_t_8 += __pyx_bshape_1_xinc;
*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_int_t *, __pyx_bstruct_xinc.buf, __pyx_t_2, __pyx_bstride_0_xinc, __pyx_t_8, __pyx_bstride_1_xinc) = (__pyx_v_x - __pyx_v_hw);
/* "/home/eads/work/repo/try/scikits.image/scikits/image/morphology/cmorph.pyx":84
/* "/home/eads/work/repo/scikits.image/scikits/image/morphology/cmorph.pyx":88
* for y in range(sh):
* xinc[x, y] = (x - hw)
* yinc[x, y] = (y - hh) # <<<<<<<<<<<<<<
@@ -1448,7 +1464,7 @@ static PyObject *__pyx_pf_7scikits_5image_10morphology_6cmorph_erode(PyObject *_
}
}
/* "/home/eads/work/repo/try/scikits.image/scikits/image/morphology/cmorph.pyx":86
/* "/home/eads/work/repo/scikits.image/scikits/image/morphology/cmorph.pyx":90
* yinc[x, y] = (y - hh)
*
* for x in range(width): # <<<<<<<<<<<<<<
@@ -1457,35 +1473,35 @@ static PyObject *__pyx_pf_7scikits_5image_10morphology_6cmorph_erode(PyObject *_
*/
for (__pyx_v_x = 0; __pyx_v_x < __pyx_v_width; __pyx_v_x+=1) {
/* "/home/eads/work/repo/try/scikits.image/scikits/image/morphology/cmorph.pyx":87
/* "/home/eads/work/repo/scikits.image/scikits/image/morphology/cmorph.pyx":91
*
* for x in range(width):
* for y in range(height): # <<<<<<<<<<<<<<
* min_so_far = 255
* #for cx in range(int_max(0, x - hw), int_min(x + hw, out.shape[0])):
* for cx in range(0, sw):
*/
for (__pyx_v_y = 0; __pyx_v_y < __pyx_v_height; __pyx_v_y+=1) {
/* "/home/eads/work/repo/try/scikits.image/scikits/image/morphology/cmorph.pyx":88
/* "/home/eads/work/repo/scikits.image/scikits/image/morphology/cmorph.pyx":92
* for x in range(width):
* for y in range(height):
* min_so_far = 255 # <<<<<<<<<<<<<<
* #for cx in range(int_max(0, x - hw), int_min(x + hw, out.shape[0])):
* #for cy in range(int_max(0, y - hh), int_min(y + hh, out.shape[1])):
* for cx in range(0, sw):
* for cy in range(0, sh):
*/
__pyx_v_min_so_far = 255;
/* "/home/eads/work/repo/try/scikits.image/scikits/image/morphology/cmorph.pyx":91
* #for cx in range(int_max(0, x - hw), int_min(x + hw, out.shape[0])):
* #for cy in range(int_max(0, y - hh), int_min(y + hh, out.shape[1])):
/* "/home/eads/work/repo/scikits.image/scikits/image/morphology/cmorph.pyx":93
* for y in range(height):
* min_so_far = 255
* for cx in range(0, sw): # <<<<<<<<<<<<<<
* for cy in range(0, sh):
* ix = x + xinc[cx,cy]
*/
for (__pyx_v_cx = 0; __pyx_v_cx < __pyx_v_sw; __pyx_v_cx+=1) {
/* "/home/eads/work/repo/try/scikits.image/scikits/image/morphology/cmorph.pyx":92
* #for cy in range(int_max(0, y - hh), int_min(y + hh, out.shape[1])):
/* "/home/eads/work/repo/scikits.image/scikits/image/morphology/cmorph.pyx":94
* min_so_far = 255
* for cx in range(0, sw):
* for cy in range(0, sh): # <<<<<<<<<<<<<<
* ix = x + xinc[cx,cy]
@@ -1493,12 +1509,12 @@ static PyObject *__pyx_pf_7scikits_5image_10morphology_6cmorph_erode(PyObject *_
*/
for (__pyx_v_cy = 0; __pyx_v_cy < __pyx_v_sh; __pyx_v_cy+=1) {
/* "/home/eads/work/repo/try/scikits.image/scikits/image/morphology/cmorph.pyx":93
/* "/home/eads/work/repo/scikits.image/scikits/image/morphology/cmorph.pyx":95
* for cx in range(0, sw):
* for cy in range(0, sh):
* ix = x + xinc[cx,cy] # <<<<<<<<<<<<<<
* iy = y + yinc[cx,cy]
* if ix>=0 and iy>=0 and ix < width and iy < height and selem[cx, cy] == 1 and image[ix,iy] < min_so_far:
* if ix>=0 and iy>=0 and ix < width \
*/
__pyx_t_11 = __pyx_v_cx;
__pyx_t_12 = __pyx_v_cy;
@@ -1506,12 +1522,12 @@ static PyObject *__pyx_pf_7scikits_5image_10morphology_6cmorph_erode(PyObject *_
if (__pyx_t_12 < 0) __pyx_t_12 += __pyx_bshape_1_xinc;
__pyx_v_ix = (__pyx_v_x + (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_int_t *, __pyx_bstruct_xinc.buf, __pyx_t_11, __pyx_bstride_0_xinc, __pyx_t_12, __pyx_bstride_1_xinc)));
/* "/home/eads/work/repo/try/scikits.image/scikits/image/morphology/cmorph.pyx":94
/* "/home/eads/work/repo/scikits.image/scikits/image/morphology/cmorph.pyx":96
* for cy in range(0, sh):
* ix = x + xinc[cx,cy]
* iy = y + yinc[cx,cy] # <<<<<<<<<<<<<<
* if ix>=0 and iy>=0 and ix < width and iy < height and selem[cx, cy] == 1 and image[ix,iy] < min_so_far:
* min_so_far = image[ix,iy]
* if ix>=0 and iy>=0 and ix < width \
* and iy < height and selem[cx, cy] == 1 \
*/
__pyx_t_13 = __pyx_v_cx;
__pyx_t_14 = __pyx_v_cy;
@@ -1519,17 +1535,25 @@ static PyObject *__pyx_pf_7scikits_5image_10morphology_6cmorph_erode(PyObject *_
if (__pyx_t_14 < 0) __pyx_t_14 += __pyx_bshape_1_yinc;
__pyx_v_iy = (__pyx_v_y + (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_int_t *, __pyx_bstruct_yinc.buf, __pyx_t_13, __pyx_bstride_0_yinc, __pyx_t_14, __pyx_bstride_1_yinc)));
/* "/home/eads/work/repo/try/scikits.image/scikits/image/morphology/cmorph.pyx":95
/* "/home/eads/work/repo/scikits.image/scikits/image/morphology/cmorph.pyx":97
* ix = x + xinc[cx,cy]
* iy = y + yinc[cx,cy]
* if ix>=0 and iy>=0 and ix < width and iy < height and selem[cx, cy] == 1 and image[ix,iy] < min_so_far: # <<<<<<<<<<<<<<
* min_so_far = image[ix,iy]
* out[x,y] = min_so_far
* if ix>=0 and iy>=0 and ix < width \ # <<<<<<<<<<<<<<
* and iy < height and selem[cx, cy] == 1 \
* and image[ix,iy] < min_so_far:
*/
__pyx_1 = (__pyx_v_ix >= 0);
if (__pyx_1) {
__pyx_1 = (__pyx_v_iy >= 0);
if (__pyx_1) {
/* "/home/eads/work/repo/scikits.image/scikits/image/morphology/cmorph.pyx":98
* iy = y + yinc[cx,cy]
* if ix>=0 and iy>=0 and ix < width \
* and iy < height and selem[cx, cy] == 1 \ # <<<<<<<<<<<<<<
* and image[ix,iy] < min_so_far:
* min_so_far = image[ix,iy]
*/
__pyx_1 = (__pyx_v_ix < __pyx_v_width);
if (__pyx_1) {
__pyx_1 = (__pyx_v_iy < __pyx_v_height);
@@ -1540,6 +1564,14 @@ static PyObject *__pyx_pf_7scikits_5image_10morphology_6cmorph_erode(PyObject *_
if (__pyx_t_16 < 0) __pyx_t_16 += __pyx_bshape_1_selem;
__pyx_1 = ((*__Pyx_BufPtrStrided2d(__pyx_t_7scikits_5image_10morphology_6cmorph_IMAGE_DTYPE_t *, __pyx_bstruct_selem.buf, __pyx_t_15, __pyx_bstride_0_selem, __pyx_t_16, __pyx_bstride_1_selem)) == 1);
if (__pyx_1) {
/* "/home/eads/work/repo/scikits.image/scikits/image/morphology/cmorph.pyx":99
* if ix>=0 and iy>=0 and ix < width \
* and iy < height and selem[cx, cy] == 1 \
* and image[ix,iy] < min_so_far: # <<<<<<<<<<<<<<
* min_so_far = image[ix,iy]
* out[x,y] = min_so_far
*/
__pyx_t_17 = __pyx_v_ix;
__pyx_t_18 = __pyx_v_iy;
if (__pyx_t_17 < 0) __pyx_t_17 += __pyx_bshape_0_image;
@@ -1552,9 +1584,9 @@ static PyObject *__pyx_pf_7scikits_5image_10morphology_6cmorph_erode(PyObject *_
}
if (__pyx_1) {
/* "/home/eads/work/repo/try/scikits.image/scikits/image/morphology/cmorph.pyx":96
* iy = y + yinc[cx,cy]
* if ix>=0 and iy>=0 and ix < width and iy < height and selem[cx, cy] == 1 and image[ix,iy] < min_so_far:
/* "/home/eads/work/repo/scikits.image/scikits/image/morphology/cmorph.pyx":100
* and iy < height and selem[cx, cy] == 1 \
* and image[ix,iy] < min_so_far:
* min_so_far = image[ix,iy] # <<<<<<<<<<<<<<
* out[x,y] = min_so_far
*
@@ -1570,8 +1602,8 @@ static PyObject *__pyx_pf_7scikits_5image_10morphology_6cmorph_erode(PyObject *_
}
}
/* "/home/eads/work/repo/try/scikits.image/scikits/image/morphology/cmorph.pyx":97
* if ix>=0 and iy>=0 and ix < width and iy < height and selem[cx, cy] == 1 and image[ix,iy] < min_so_far:
/* "/home/eads/work/repo/scikits.image/scikits/image/morphology/cmorph.pyx":101
* and image[ix,iy] < min_so_far:
* min_so_far = image[ix,iy]
* out[x,y] = min_so_far # <<<<<<<<<<<<<<
*
@@ -1585,7 +1617,7 @@ static PyObject *__pyx_pf_7scikits_5image_10morphology_6cmorph_erode(PyObject *_
}
}
/* "/home/eads/work/repo/try/scikits.image/scikits/image/morphology/cmorph.pyx":99
/* "/home/eads/work/repo/scikits.image/scikits/image/morphology/cmorph.pyx":103
* out[x,y] = min_so_far
*
* return out # <<<<<<<<<<<<<<
@@ -2975,7 +3007,7 @@ PyMODINIT_FUNC PyInit_cmorph(void)
/*--- Function import code ---*/
/*--- Execution code ---*/
/* "/home/eads/work/repo/try/scikits.image/scikits/image/morphology/cmorph.pyx":7
/* "/home/eads/work/repo/scikits.image/scikits/image/morphology/cmorph.pyx":7
*
* from __future__ import division
* import numpy as np # <<<<<<<<<<<<<<
@@ -2986,7 +3018,7 @@ PyMODINIT_FUNC PyInit_cmorph(void)
if (PyObject_SetAttr(__pyx_m, __pyx_kp_np, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 7; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
Py_DECREF(__pyx_1); __pyx_1 = 0;
/* "/home/eads/work/repo/try/scikits.image/scikits/image/morphology/cmorph.pyx":12
/* "/home/eads/work/repo/scikits.image/scikits/image/morphology/cmorph.pyx":12
* cimport cython
*
* STREL_DTYPE = np.uint8 # <<<<<<<<<<<<<<
@@ -2999,7 +3031,7 @@ PyMODINIT_FUNC PyInit_cmorph(void)
if (PyObject_SetAttr(__pyx_m, __pyx_kp_STREL_DTYPE, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 12; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
Py_DECREF(__pyx_2); __pyx_2 = 0;
/* "/home/eads/work/repo/try/scikits.image/scikits/image/morphology/cmorph.pyx":15
/* "/home/eads/work/repo/scikits.image/scikits/image/morphology/cmorph.pyx":15
* ctypedef np.uint8_t STREL_DTYPE_t
*
* IMAGE_DTYPE = np.uint8 # <<<<<<<<<<<<<<
+1 -1
View File
@@ -18,7 +18,7 @@ ctypedef np.uint8_t IMAGE_DTYPE_t
cdef inline int int_max(int a, int b): return a if a >= b else b
cdef inline int int_min(int a, int b): return a if a <= b else b
@cython.boundsgcheck(False)
@cython.boundscheck(False)
def dilate(np.ndarray[IMAGE_DTYPE_t, ndim=2] image not None,
np.ndarray[IMAGE_DTYPE_t, ndim=2] selem not None,
np.ndarray[IMAGE_DTYPE_t, ndim=2] out):
+1 -1
View File
@@ -35,7 +35,7 @@ def greyscale_erode(image, selem, out=None):
if image is out:
raise NotImplementedError("In-place erosion not supported!")
try:
import cmorph
import scikits.image.morphology.cmorph as cmorph
out = cmorph.erode(image, selem, out=out)
return out;
except ImportError:
+5 -106
View File
@@ -86,7 +86,7 @@ def diamond(radius, dtype=np.uint8):
s = np.abs(I-half)+np.abs(J-half)
return np.array(s <= radius, dtype=dtype)
def disk(radius, N=0, dtype=np.uint8):
def disk(radius, dtype=np.uint8):
"""
Generates a flat, disk-shaped structuring element of a given radius.
A pixel is within the neighborhood iff the euclidean distance between
@@ -106,109 +106,8 @@ def disk(radius, N=0, dtype=np.uint8):
The structuring element where elements of the neighborhood
are 1 and 0 otherwise.
"""
half = radius
(I, J) = np.meshgrid(xrange(0, radius*2+1), xrange(0, radius*2+1))
if N == 0:
s = (I-half)**2.+(J-half)**2.
#print s
else:
raise NotImplementedError("""
scikits.image.morphology.disk: approximations not implemented.
Try N=0 for now.
""")
L = np.linspace(-radius, radius, 2*radius+1)
(X, Y) = np.meshgrid(L, L)
s = X**2
s += Y**2
return np.array(s <= radius * radius, dtype=dtype)
def ellipse(size, angle, ratio=0.5, dtype=np.uint8):
"""
Generates an elliptically-shaped structuring element of a given
angle, ratio, and kernel size.
Parameters
----------
size : int
The half-width of the kernel. The kernel size is 2*size+1.
angle : float
The angle of rotation of the ellipse in radians.
ratio : float
The aspect ratio of the ellipse.
dtype : data-type
The data type of the structuring element.
Returns
-------
selem : ndarray
The structuring element where elements of the neighborhood
are 1 and 0 otherwise.
"""
structure = np.zeros((2*size+1, 2*size+1), dtype=dtype)
a = np.matrix([np.cos(angle), np.sin(angle)])
b = np.matrix([-np.sin(angle), np.cos(angle)])
aspect = a.T * a + b.T * b / ratio
for y in xrange(-size, size+ 1):
for x in xrange(-size, size + 1):
i = x+size
j = y+size
v = np.matrix([x,y], dtype='f') / float(size)
n = v * aspect * v.T
if n < 1:
structure[i, j] = 1
return structure
def strel(shape='disk', N=0, radius=3, width=3, height=3, angle=0., length=3,
dtype=np.uint8, out=None):
"""
Generates a structuring element for greyscale or binary morphology.
The interface of this function is similar to MATLAB(TM)'s strel function.
Parameters
----------
shape : string
A string identifier for the shape of the structuring element,
which can be any of the following: 'arbitrary', 'ball',
'diamond', 'disk', 'pair', 'rectangle', 'square'.
N : int
When non-zero, the number of lines to approximate the
structuring element. (not implemented)
radius : int
The radius for disk or diamond structuring elements.
width : int
The height for square, ball or rectangle-shaped structuring elements.
height : int
The height for ball or rectangle-shaped structuring elements.
size : int
The half-width of an elliptical structuring element.
aspect : float
The aspect ratio of an ellipse.
Returns
-------
neighborhood : ndarray
The structuring element.
"""
shape = shape.lower().strip()
if shape == 'disk':
return disk(radius, dtype=dtype)
elif shape == 'diamond':
return diamond(radius, dtype=dtype)
elif shape == 'square':
return square(width, dtype=dtype)
elif shape == 'rectangle':
return rectangle(width, height, dtype=dtype)
elif shape == 'ellipse':
return ellipse(size, angle, ratio, dtype=dtype)
else:
raise ValueError("Unknown structuring element type '%s'" % shape)
+2 -2
View File
@@ -1,2 +1,2 @@
version='unbuilt-dev'
# THIS FILE IS GENERATED FROM THE SCIKITS.IMAGE SETUP.PY
version='0.2dev'