summaryrefslogtreecommitdiff
path: root/silx/image/bilinear.pyx
diff options
context:
space:
mode:
Diffstat (limited to 'silx/image/bilinear.pyx')
-rw-r--r--silx/image/bilinear.pyx13
1 files changed, 10 insertions, 3 deletions
diff --git a/silx/image/bilinear.pyx b/silx/image/bilinear.pyx
index 0b072df..7f6354b 100644
--- a/silx/image/bilinear.pyx
+++ b/silx/image/bilinear.pyx
@@ -268,8 +268,9 @@ cdef class BilinearImage:
return numpy.asarray(res).reshape(shape)
@cython.boundscheck(False)
- def profile_line(self, src, dst, int linewidth=1):
- """Return the intensity profile of an image measured along a scan line.
+ def profile_line(self, src, dst, int linewidth=1, method='mean'):
+ """Return the mean or sum of intensity profile of an image measured
+ along a scan line.
:param src: The start point of the scan line.
:type src: 2-tuple of numeric scalar
@@ -278,6 +279,8 @@ cdef class BilinearImage:
in contrast to standard numpy indexing.
:type dst: 2-tuple of numeric scalar
:param int linewidth: Width of the scanline (unit image pixel).
+ :param str method: 'mean' or 'sum' depending if we want to compute the
+ mean intensity along the line or the sum.
:return: The intensity profile along the scan line.
The length of the profile is the ceil of the computed length
of the scan line.
@@ -313,6 +316,7 @@ cdef class BilinearImage:
src_row -= row_width * (linewidth - 1) / 2.
src_col -= col_width * (linewidth - 1) / 2.
+ compute_mean = (method == 'mean')
with nogil:
for i in range(lengt):
sum = 0
@@ -329,7 +333,10 @@ cdef class BilinearImage:
cnt = cnt + 1
sum = sum + self.c_funct(new_col, new_row)
if cnt:
- result[i] += sum / cnt
+ if compute_mean is True:
+ result[i] += sum / cnt
+ else:
+ result[i] += sum
# Ensures the result is exported as numpy array and not memory view.
return numpy.asarray(result)