ENH: Rename sat and sat_sum to be in-line with CV community convention.

This commit is contained in:
Stefan van der Walt
2011-09-20 08:43:54 -07:00
parent 905f279e59
commit 5ba4ebf30b
4 changed files with 42 additions and 42 deletions
+1 -1
View File
@@ -1,4 +1,4 @@
from .hough_transform import *
from .finite_radon_transform import *
from .project import *
from .sum_area_table import *
from .integral import *
@@ -1,5 +1,5 @@
def sat(x):
"""Summed area table / integral image.
def integral_image(x):
"""Integral image / summed area table.
The integral image contains the sum of all elements above and to the
left of it, i.e.:
@@ -10,13 +10,13 @@ def sat(x):
Parameters
----------
X : ndarray
x : ndarray
Input image.
Returns
-------
S : ndarray
Summed area table.
Integral image / summed area table.
References
----------
@@ -26,13 +26,13 @@ def sat(x):
"""
return x.cumsum(1).cumsum(0)
def sat_sum(sat, r0, c0, r1, c1):
"""Use a summed area table / integral image to sum over a given window.
def integrate(ii, r0, c0, r1, c1):
"""Use an integral image to integrate over a given window.
Parameters
----------
sat : ndarray
Summed area table / integral image.
ii : ndarray
Integral image.
r0, c0 : int
Top-left corner of block to be summed.
r1, c1 : int
@@ -41,20 +41,20 @@ def sat_sum(sat, r0, c0, r1, c1):
Returns
-------
S : int
Sum over the given window.
Integral (sum) over the given window.
"""
S = 0
S += sat[r1, c1]
S += ii[r1, c1]
if (r0 - 1 >= 0) and (c0 - 1 >= 0):
S += sat[r0 - 1, c0 - 1]
S += ii[r0 - 1, c0 - 1]
if (r0 - 1 >= 0):
S -= sat[r0 - 1, c1]
S -= ii[r0 - 1, c1]
if (c0 - 1 >= 0):
S -= sat[r1, c0 - 1]
S -= ii[r1, c0 - 1]
return S
@@ -0,0 +1,28 @@
import numpy as np
from numpy.testing import *
from scikits.image.transform import integral_image, integrate
x = (np.random.random((50, 50)) * 255).astype(np.uint8)
s = integral_image(x)
def test_validity():
y = np.arange(12).reshape((4,3))
y = (np.random.random((50, 50)) * 255).astype(np.uint8)
assert_equal(integral_image(y)[-1, -1],
y.sum())
def test_basic():
assert_equal(x[12:24, 10:20].sum(), integrate(s, 12, 10, 23, 19))
assert_equal(x[:20, :20].sum(), integrate(s, 0, 0, 19, 19))
assert_equal(x[:20, 10:20].sum(), integrate(s, 0, 10, 19, 19))
assert_equal(x[10:20, :20].sum(), integrate(s, 10, 0, 19, 19))
def test_single():
assert_equal(x[0, 0], integrate(s, 0, 0, 0, 0))
assert_equal(x[10, 10], integrate(s, 10, 10, 10, 10))
if __name__ == '__main__':
run_module_suite()
-28
View File
@@ -1,28 +0,0 @@
import numpy as np
from numpy.testing import *
from scikits.image.transform import sat, sat_sum
x = (np.random.random((50, 50)) * 255).astype(np.uint8)
s = sat(x)
def test_validity():
y = np.arange(12).reshape((4,3))
y = (np.random.random((50, 50)) * 255).astype(np.uint8)
assert_equal(sat(y)[-1, -1],
y.sum())
def test_basic():
assert_equal(x[12:24, 10:20].sum(), sat_sum(s, 12, 10, 23, 19))
assert_equal(x[:20, :20].sum(), sat_sum(s, 0, 0, 19, 19))
assert_equal(x[:20, 10:20].sum(), sat_sum(s, 0, 10, 19, 19))
assert_equal(x[10:20, :20].sum(), sat_sum(s, 10, 0, 19, 19))
def test_single():
assert_equal(x[0, 0], sat_sum(s, 0, 0, 0, 0))
assert_equal(x[10, 10], sat_sum(s, 10, 10, 10, 10))
if __name__ == '__main__':
run_module_suite()