Skip to content
Script for adding oneVoxel noise to MR images
Python Dockerfile
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
onevox
.gitignore
Dockerfile
LICENSE
MANIFEST.in
README.rst
requirements.txt
setup.cfg
setup.py

README.rst

oneVoxel

Small library for adding well described noise to images, with a command-line utility specifically for application on Nifti formatted images.

Installation

Simple! Just open your favourite terminal and type:

$ pip install onevox

Alongside installing the oneVoxel package, this will also ensure the dependencies are installed: numpy, scipy, nibabel, and nilearn.

For building this in Docker, you can run the following command:

$ docker build -t gkiar/onevox:local --network host .

Usage

From within Python this library can used to apply noise to arbitrary images:

[1]: import numpy as np
[2]: np.random.seed(1234)
[3]: data = np.random.random((10,10,10))  # Create data matrix
[4]: mask = data[:,:,0] > 0.4  # Define mask as values higher than 0.4 in the first 2D slice

[5]: from onevoxel import noise  # Load noise utils

[6]: # Generate noise locations from image and mask
[7]: loc = noise.generate_noise_params(data, mask, erode=0, mode='independent')
[8]: loc
[(3, 6, 0),
 (4, 4, 1),
 (9, 0, 2),
 (7, 9, 3),
 (1, 2, 4),
 (3, 1, 5),
 (0, 7, 6),
 (9, 0, 7),
 (3, 4, 8),
 (1, 9, 9)]

[9]: # Apply noise to the image and verify it's in the right spot
[10]: noisy_data, noisy_hash = noise.apply_noise_params(data, loc, scale=True, intensity=0.01)
[11]: sorted(list(zip(*np.where(noisy_data != data))), key=lambda elem: elem[2]) == loc
True

Contributing

Excited by the project and want to get involved?! Please check out our contributing guide, and look through the issues to start seeing where you can lend a hand. We look forward to approving your amazing contributions!

You can’t perform that action at this time.