All Projects → sergivalverde → MRI_intensity_normalization

sergivalverde / MRI_intensity_normalization

Licence: GPL-3.0 license
Intensity normalization of multi-channel MRI images using the method proposed by Nyul et al. 2000

Programming Languages

Jupyter Notebook
11667 projects
matlab
3953 projects
python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to MRI intensity normalization

Flexy Pool
FlexyPool adds metrics and failover strategies to a given Connection Pool, allowing it to resize on demand.
Stars: ✭ 856 (+1646.94%)
Mutual labels:  histogram
Plotille
Plot in the terminal using braille dots.
Stars: ✭ 99 (+102.04%)
Mutual labels:  histogram
Imageqt
数字图像处理——基于Qt 5.8.0
Stars: ✭ 177 (+261.22%)
Mutual labels:  histogram
Simple Deflicker
A lightweight and easy to use tool for deflickering timelapse image sequences.
Stars: ✭ 75 (+53.06%)
Mutual labels:  histogram
Opencv image comparator
图片相似度计算(直方图、峰值信噪比、结构相似性、感知哈希算法)、轮廓检测、直线检测、圆检测、角点检测、直线交点计算、旋转角度矫正、图像匹配的对应相似处连线、灰度、二值化、直方图均衡化。
Stars: ✭ 87 (+77.55%)
Mutual labels:  histogram
Physt
Python histogram library - histograms as updateable, fully semantic objects with visualization tools. [P]ython [HYST]ograms.
Stars: ✭ 107 (+118.37%)
Mutual labels:  histogram
Node Measured
A Node metrics library for measuring and reporting application-level metrics, inspired by Coda Hale, Yammer Inc's Dropwizard Metrics Libraries
Stars: ✭ 500 (+920.41%)
Mutual labels:  histogram
Histogram
Fast multi-dimensional generalized histogram with convenient interface for C++14
Stars: ✭ 243 (+395.92%)
Mutual labels:  histogram
Thist
A go package for generating online histograms and plotting them in the terminal and PDFs
Stars: ✭ 96 (+95.92%)
Mutual labels:  histogram
Histogram
Streaming Histograms for Clojure/Java
Stars: ✭ 149 (+204.08%)
Mutual labels:  histogram
Rare
Fast, realtime regex-extraction, and aggregation into common formats such as histograms, numerical summaries, tables, and more!
Stars: ✭ 76 (+55.1%)
Mutual labels:  histogram
H1b Software Salaries
Using React and d3.js, I built a visualisation of H1B salaries in the software industry.
Stars: ✭ 81 (+65.31%)
Mutual labels:  histogram
Py Ascii Graph
A simple python lib to print data as ascii histograms
Stars: ✭ 107 (+118.37%)
Mutual labels:  histogram
React Google Charts
A thin, typed, React wrapper over Google Charts Visualization and Charts API.
Stars: ✭ 944 (+1826.53%)
Mutual labels:  histogram
Fast Histogram
⚡️ Fast 1D and 2D histogram functions in Python ⚡️
Stars: ✭ 187 (+281.63%)
Mutual labels:  histogram
Chatistics
💬 Python scripts to parse Messenger, Hangouts, WhatsApp and Telegram chat logs into DataFrames.
Stars: ✭ 814 (+1561.22%)
Mutual labels:  histogram
Tracetools
Tools to process Go trace logs into various profiles. Complement for "go tool trace".
Stars: ✭ 105 (+114.29%)
Mutual labels:  histogram
ArteryNetwork
A pipeline to extract vessels from MR images and perform analysis.
Stars: ✭ 21 (-57.14%)
Mutual labels:  mri-images
Sidekiq monitor
Advanced monitoring for Sidekiq
Stars: ✭ 220 (+348.98%)
Mutual labels:  histogram
Mongoeye
Schema and data analyzer for MongoDB written in Go.
Stars: ✭ 113 (+130.61%)
Mutual labels:  histogram

MRI intensity normalization

Intensity normalization of multi-channel MRI images using the method proposed by Nyul et al. 2000. In the original paper, the authors suggest a method where a set of standard histogram landmarks are learned from a set of MRI images. These landmarks are then used to equalize the histograms of the images to normalize. In both learning and transformation, the histograms are used to find the intensity landmarks. In our implmentation, the landmarks are computed based on the total range of intensities instead of the histograms.

How it works:

The normalization is carried out in two steps:

Learning the landmark parameters:

From a set of training images, the landmark parameters are learned using the function learn_intensity_parameters. Intensity parameters ì_min and i_max have to be set by the user. These two values establish the minimum and maximum intensities of the standard intensity scale.


methodT= 'spline'; % or methodT= 'linear';

train_im_path{1} = '/path/to/images/1/t1.nii';
train_im_path{2} = '/path/to/images/2/t1.nii';
...
train_im_path{n} = '/path/to/images/n/t1.nii';

i_min = min_intensity;
i_max = max_intensity;

% learn the parameters
m_k = learn_intensity_landmarks(train_im_path, i_min, i_max);

The output struct m_k contains the standard landmarks learned from the input images. These landmarks refer to the minimum intensity, the signal intensity deciles {d10,...,d90}, and the maximum intensity of interest.

Apply the transformation function to each of the images to normalize

The output struct m_k is used to map the intensities of each of the input images with respect to the standard scale. The original paper implements a function that maps linearly the input intensities into the standard histogram. However, the authors suggest that other mapping functions can be also used. Here, input intensities are mapped using a spline function.

input_image = '/path/to/input/image'
out_name = '/path/to/input/image/normalized_scan'

apply_intensity_transformation(input_image, out_name, m_k, methodT);

Notes:

  • Input images have to be skull-stripped for optimal results. If images are not skull-stripped but background intensity is < 0.05, the method should also work. With background intensities higher than this threshold the landmarks may be altered in some unexpected way due to remaining skull, fat or eyes.

  • The current method uses the nifti_tools repository available here. Add it to your Matlab path or initialize the included submodule after cloning the project as:

git submodule init
git submodule update

Credits:

Sergi Valverde / NeuroImage Computing Group. Vision and Robotics Insititute VICOROB (University of Girona)

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].