Files
scikit-image/skimage/feature/censure_cy.pyx
T
2013-08-15 14:59:57 +05:30

32 lines
1.1 KiB
Cython

#cython: cdivision=True
#cython: boundscheck=False
#cython: nonecheck=False
#cython: wraparound=False
cimport numpy as cnp
import numpy as np
def _censure_dob_loop(double[:, ::1] image, Py_ssize_t n,
double[:, ::1] integral_img,
double[:, ::1] filtered_image,
double inner_weight, double outer_weight):
cdef Py_ssize_t i, j
cdef double inner, outer
for i in range(2 * n, image.shape[0] - 2 * n):
for j in range(2 * n, image.shape[1] - 2 * n):
inner = (integral_img[i + n, j + n]
+ integral_img[i - n - 1, j - n - 1]
- integral_img[i + n, j - n - 1]
- integral_img[i - n - 1, j + n])
outer = (integral_img[i + 2 * n, j + 2 * n]
+ integral_img[i - 2 * n - 1, j - 2 * n - 1]
- integral_img[i + 2 * n, j - 2 * n - 1]
- integral_img[i - 2 * n - 1, j + 2 * n])
filtered_image[i, j] = (outer_weight * outer
- (inner_weight + outer_weight) * inner)