Python scipy.ndimage.binary_opening() Examples
The following are 13
code examples of scipy.ndimage.binary_opening().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
scipy.ndimage
, or try the search function
.
Example #1
Source File: test_ndimage.py From Computable with MIT License | 6 votes |
def test_binary_opening01(self): expected = [[0, 1, 0, 0, 0, 0, 0, 0], [1, 1, 1, 0, 0, 0, 0, 0], [0, 1, 0, 0, 0, 1, 0, 0], [0, 0, 0, 0, 1, 1, 1, 0], [0, 0, 1, 0, 0, 1, 0, 0], [0, 1, 1, 1, 1, 1, 1, 0], [0, 0, 1, 0, 0, 1, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0]] for type in self.types: data = numpy.array([[0, 1, 0, 0, 0, 0, 0, 0], [1, 1, 1, 0, 0, 0, 0, 0], [0, 1, 0, 0, 0, 1, 0, 0], [0, 0, 0, 1, 1, 1, 1, 0], [0, 0, 1, 1, 0, 1, 0, 0], [0, 1, 1, 1, 1, 1, 1, 0], [0, 0, 1, 0, 0, 1, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0]], type) out = ndimage.binary_opening(data) assert_array_almost_equal(out, expected)
Example #2
Source File: test_ndimage.py From Computable with MIT License | 6 votes |
def test_binary_opening02(self): struct = ndimage.generate_binary_structure(2, 2) expected = [[1, 1, 1, 0, 0, 0, 0, 0], [1, 1, 1, 0, 0, 0, 0, 0], [1, 1, 1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 1, 1, 1, 0, 0, 0, 0], [0, 1, 1, 1, 0, 0, 0, 0], [0, 1, 1, 1, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0]] for type in self.types: data = numpy.array([[1, 1, 1, 0, 0, 0, 0, 0], [1, 1, 1, 0, 0, 0, 0, 0], [1, 1, 1, 1, 1, 1, 1, 0], [0, 0, 1, 1, 1, 1, 1, 0], [0, 1, 1, 1, 0, 1, 1, 0], [0, 1, 1, 1, 1, 1, 1, 0], [0, 1, 1, 1, 1, 1, 1, 0], [0, 0, 0, 0, 0, 0, 0, 0]], type) out = ndimage.binary_opening(data, struct) assert_array_almost_equal(out, expected)
Example #3
Source File: test_ndimage.py From GraphicDesignPatternByPython with MIT License | 6 votes |
def test_binary_opening01(self): expected = [[0, 1, 0, 0, 0, 0, 0, 0], [1, 1, 1, 0, 0, 0, 0, 0], [0, 1, 0, 0, 0, 1, 0, 0], [0, 0, 0, 0, 1, 1, 1, 0], [0, 0, 1, 0, 0, 1, 0, 0], [0, 1, 1, 1, 1, 1, 1, 0], [0, 0, 1, 0, 0, 1, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0]] for type_ in self.types: data = numpy.array([[0, 1, 0, 0, 0, 0, 0, 0], [1, 1, 1, 0, 0, 0, 0, 0], [0, 1, 0, 0, 0, 1, 0, 0], [0, 0, 0, 1, 1, 1, 1, 0], [0, 0, 1, 1, 0, 1, 0, 0], [0, 1, 1, 1, 1, 1, 1, 0], [0, 0, 1, 0, 0, 1, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0]], type_) out = ndimage.binary_opening(data) assert_array_almost_equal(out, expected)
Example #4
Source File: test_ndimage.py From GraphicDesignPatternByPython with MIT License | 6 votes |
def test_binary_opening02(self): struct = ndimage.generate_binary_structure(2, 2) expected = [[1, 1, 1, 0, 0, 0, 0, 0], [1, 1, 1, 0, 0, 0, 0, 0], [1, 1, 1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 1, 1, 1, 0, 0, 0, 0], [0, 1, 1, 1, 0, 0, 0, 0], [0, 1, 1, 1, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0]] for type_ in self.types: data = numpy.array([[1, 1, 1, 0, 0, 0, 0, 0], [1, 1, 1, 0, 0, 0, 0, 0], [1, 1, 1, 1, 1, 1, 1, 0], [0, 0, 1, 1, 1, 1, 1, 0], [0, 1, 1, 1, 0, 1, 1, 0], [0, 1, 1, 1, 1, 1, 1, 0], [0, 1, 1, 1, 1, 1, 1, 0], [0, 0, 0, 0, 0, 0, 0, 0]], type_) out = ndimage.binary_opening(data, struct) assert_array_almost_equal(out, expected)
Example #5
Source File: anatomical.py From mriqc with BSD 3-Clause "New" or "Revised" License | 6 votes |
def _prepare_mask(mask, label, erode=True): fgmask = mask.copy() if np.issubdtype(fgmask.dtype, np.integer): if isinstance(label, (str, bytes)): label = FSL_FAST_LABELS[label] fgmask[fgmask != label] = 0 fgmask[fgmask == label] = 1 else: fgmask[fgmask > 0.95] = 1.0 fgmask[fgmask < 1.0] = 0 if erode: # Create a structural element to be used in an opening operation. struc = nd.generate_binary_structure(3, 2) # Perform an opening operation on the background data. fgmask = nd.binary_opening(fgmask, structure=struc).astype(np.uint8) return fgmask
Example #6
Source File: test_ndimage.py From GraphicDesignPatternByPython with MIT License | 5 votes |
def setup_method(self): a = numpy.zeros((5,5), dtype=bool) a[1:4, 1:4] = True a[4,4] = True self.array = a self.sq3x3 = numpy.ones((3,3)) self.opened_old = ndimage.binary_opening(self.array, self.sq3x3, 1, None, 0) self.closed_old = ndimage.binary_closing(self.array, self.sq3x3, 1, None, 0)
Example #7
Source File: test_ndimage.py From GraphicDesignPatternByPython with MIT License | 5 votes |
def test_opening_new_arguments(self): opened_new = ndimage.binary_opening(self.array, self.sq3x3, 1, None, 0, None, 0, False) assert_array_equal(opened_new, self.opened_old)
Example #8
Source File: anatomical.py From mriqc with BSD 3-Clause "New" or "Revised" License | 5 votes |
def _run_interface(self, runtime): in_file = nb.load(self.inputs.in_file) data = in_file.get_data() mask = data <= 0 # Pad one pixel to control behavior on borders of binary_opening mask = np.pad(mask, pad_width=(1,), mode="constant", constant_values=1) # Remove noise struc = nd.generate_binary_structure(3, 2) mask = nd.binary_opening(mask, structure=struc).astype(np.uint8) # Remove small objects label_im, nb_labels = nd.label(mask) if nb_labels > 2: sizes = nd.sum(mask, label_im, list(range(nb_labels + 1))) ordered = list(reversed(sorted(zip(sizes, list(range(nb_labels + 1)))))) for _, label in ordered[2:]: mask[label_im == label] = 0 # Un-pad mask = mask[1:-1, 1:-1, 1:-1] # If mask is small, clean-up if mask.sum() < 500: mask = np.zeros_like(mask, dtype=np.uint8) out_img = in_file.__class__(mask, in_file.affine, in_file.header) out_img.header.set_data_dtype(np.uint8) out_file = fname_presuffix(self.inputs.in_file, suffix="_rotmask", newpath=".") out_img.to_filename(out_file) self._results["out_file"] = out_file return runtime
Example #9
Source File: anatomical.py From mriqc with BSD 3-Clause "New" or "Revised" License | 5 votes |
def artifact_mask(imdata, airdata, distance, zscore=10.0): """Computes a mask of artifacts found in the air region""" from statsmodels.robust.scale import mad if not np.issubdtype(airdata.dtype, np.integer): airdata[airdata < 0.95] = 0 airdata[airdata > 0.0] = 1 bg_img = imdata * airdata if np.sum((bg_img > 0).astype(np.uint8)) < 100: return np.zeros_like(airdata) # Find the background threshold (the most frequently occurring value # excluding 0) bg_location = np.median(bg_img[bg_img > 0]) bg_spread = mad(bg_img[bg_img > 0]) bg_img[bg_img > 0] -= bg_location bg_img[bg_img > 0] /= bg_spread # Apply this threshold to the background voxels to identify voxels # contributing artifacts. qi1_img = np.zeros_like(bg_img) qi1_img[bg_img > zscore] = 1 qi1_img[distance < 0.10] = 0 # Create a structural element to be used in an opening operation. struc = nd.generate_binary_structure(3, 1) qi1_img = nd.binary_opening(qi1_img, struc).astype(np.uint8) qi1_img[airdata <= 0] = 0 return qi1_img
Example #10
Source File: ocrd_anybaseocr_tiseg.py From ocrd_anybaseocr with Apache License 2.0 | 5 votes |
def pixMorphSequence_mask_seed_fill_holes(self, I): Imask = self.reduction_T_1(I) Imask = self.reduction_T_1(Imask) Imask = ndimage.binary_fill_holes(Imask) Iseed = self.reduction_T_4(Imask) Iseed = self.reduction_T_3(Iseed) mask = array(ones((5, 5)), dtype=int) Iseed = ndimage.binary_opening(Iseed, mask) Iseed = self.expansion(Iseed, Imask.shape) return Imask, Iseed
Example #11
Source File: test_filters.py From porespy with MIT License | 5 votes |
def test_morphology_fft_opening_2D(self): im = self.im[:, :, 50] truth = spim.binary_opening(im, structure=disk(3)) test = ps.tools.fftmorphology(im, strel=disk(3), mode='opening') assert np.all(truth == test)
Example #12
Source File: test_filters.py From porespy with MIT License | 5 votes |
def test_morphology_fft_opening_3D(self): im = self.im truth = spim.binary_opening(im, structure=ball(3)) test = ps.tools.fftmorphology(im, strel=ball(3), mode='opening') assert np.all(truth == test)
Example #13
Source File: segmentation_labelling.py From kaggle-heart with MIT License | 5 votes |
def extract_binary_regions(sequence, opening_param = 3, mshape = ((0,1,0),(1,1,1),(0,1,0))): labelblock = np.zeros_like(sequence) for idx in range(sequence.shape[0]): labelblock[idx] = sequence[idx].copy() labelblock[idx] = ndi.binary_opening(labelblock[idx], iterations = opening_param, structure = mshape) labelblock[idx], num_labels = ndi.label(labelblock[idx]) return labelblock, opening_param, mshape