Source code for fluidimage.works.with_mask
"""Masking images
Provides:
.. autoclass:: BaseWorkWithMask
:members:
:private-members:
"""
from ..data_objects.piv import get_slices_from_strcrop
from . import BaseWork
[docs]class BaseWorkWithMask(BaseWork):
def _xymasked_from_xyoriginalimage(self, xs, ys):
if self.params.mask.strcrop is not None:
slices = get_slices_from_strcrop(self.params.mask.strcrop)
if slices[1].start is not None:
xs = xs - slices[1].start
if slices[0].start is not None:
ys = ys - slices[0].start
return xs, ys
def _xyoriginalimage_from_xymasked(self, xs, ys):
if self.params.mask.strcrop is not None:
slices = get_slices_from_strcrop(self.params.mask.strcrop)
if slices[1].start is not None:
xs = xs + slices[1].start
if slices[0].start is not None:
ys = ys + slices[0].start
return xs, ys
@classmethod
def _complete_params_with_default_mask(cls, params):
params._set_child("mask", attribs={"strcrop": None})
params.mask._set_doc(
"""
Parameters describing how images are masked.
- strcrop : None, str
Two-dimensional slice (for example '100:600, :'). If None, the whole image
is used.
"""
)