skull stripping
来源:互联网 发布:mac ps做图 编辑:程序博客网 时间:2024/05/29 10:00
Try this code:
clc; % Clear the command window.close all; % Close all figures (except those of imtool.)clear; % Erase all existing variables. Or clearvars if you want.workspace; % Make sure the workspace panel is showing.format long g;format compact;fontSize = 24;
% Check that user has the Image Processing Toolbox installed.hasIPT = license('test', 'image_toolbox');if ~hasIPT% User does not have the toolbox installed.message = sprintf('Sorry, but you do not seem to have the Image Processing Toolbox.\nDo you want to try to continue anyway?');reply = questdlg(message, 'Toolbox missing', 'Yes', 'No', 'Yes');if strcmpi(reply, 'No')% User said No, so exit.return;endend
%===============================================================================% Read in a standard MATLAB gray scale demo image.folder = 'D:\Temporary stuff';baseFileName = 'Jones-54-1-jan10-f3.jpg';% Get the full filename, with path prepended.fullFileName = fullfile(folder, baseFileName);% Check if file exists.if ~exist(fullFileName, 'file')% File doesn't exist -- didn't find it there. Check the search path for it.fullFileNameOnSearchPath = baseFileName; % No path this time.if ~exist(fullFileNameOnSearchPath, 'file')% Still didn't find it. Alert user.errorMessage = sprintf('Error: %s does not exist in the search path folders.', fullFileName);uiwait(warndlg(errorMessage));return;endendgrayImage = imread(fullFileName);% Get the dimensions of the image.% numberOfColorBands should be = 1.[rows, columns, numberOfColorBands] = size(grayImage);if numberOfColorBands > 1% It's not really gray scale like we expected - it's color.% Convert it to gray scale by taking only the green channel.grayImage = grayImage(:, :, 2); % Take green channel.end% Display the original gray scale image.subplot(2, 3, 1);imshow(grayImage, []);axis on;title('Original Grayscale Image', 'FontSize', fontSize);% Enlarge figure to full screen.set(gcf, 'Units', 'Normalized', 'OuterPosition', [0 0 1 1]);% Give a name to the title bar.set(gcf, 'Name', 'Demo by ImageAnalyst', 'NumberTitle', 'Off')
% Let's compute and display the histogram.[pixelCount, grayLevels] = imhist(grayImage);subplot(2, 3, 2);bar(grayLevels, pixelCount);grid on;title('Histogram of original image', 'FontSize', fontSize);xlim([0 grayLevels(end)]); % Scale x axis manually.
% Crop image to get rid of light box surrounding the imagegrayImage = grayImage(3:end-3, 4:end-4);% Threshold to create a binary imagebinaryImage = grayImage > 20;% Get rid of small specks of noisebinaryImage = bwareaopen(binaryImage, 10);% Display the original gray scale image.subplot(2, 3, 3);imshow(binaryImage, []);axis on;title('Binary Image', 'FontSize', fontSize);
% Seal off the bottom of the head - make the last row white.binaryImage(end,:) = true;% Fill the imagebinaryImage = imfill(binaryImage, 'holes');subplot(2, 3, 4);imshow(binaryImage, []);axis on;title('Cleaned Binary Image', 'FontSize', fontSize);
% Erode away 15 layers of pixels.se = strel('disk', 15, 0);binaryImage = imerode(binaryImage, se);subplot(2, 3, 5);imshow(binaryImage, []);axis on;title('Eroded Binary Image', 'FontSize', fontSize);
% Mask the gray imagefinalImage = grayImage; % Initialize.finalImage(~binaryImage) = 0;subplot(2, 3, 6);imshow(finalImage, []);axis on;title('Skull stripped Image', 'FontSize', fontSize);
msgbox('Done with demo');https://en.wikibooks.org/wiki/Neuroimaging_Data_Processing/Skull_Stripping
Neuroimaging Data Processing/Skull Stripping
< Neuroimaging Data ProcessingContents
- 1 Concept
- 2 Implementation
- 2.1 SPM
- 2.2 FSL
- 2.3 AFNI
- 3 References
Concept
Removal of the skull and other non-brain tissue like dura and eyes from anatomical images, which could otherwise complicate e.g. coregistration and normalization steps. Skull stripping can be part of the tissue segmentation (e.g. in SPM) but is mostly done by specialized algorithms that delineate the brain boundary. See [1] for a comparison of some brain extraction algorithms (BSE, BET, SPM, and McStrip), which suggests that all algorithms perform well in general but results highly depend on the particular dataset.
Implementation
SPM
Skull stripping in SPM can be achieved by segmenting the anatomical scan, and using a thresholded version of the sum of grey and white matter probability maps to mask out the bias corrected structural scan.
This masking can be done using SPM --> Util --> Image Calculator (ImCalc button) directly in the batch editor or by pressing the ImCalc button on the SPM GUI. The image calculator allows to perform algebraic manipulations on a set of structural images.
Input Images = segmentation generated probability maps of grey matter(i1) and white matter(i2) and the original anatomical scan (i3)Expression = defining the threshold to mask out the skull based on the selected tissue probablitiy maps e.g ·[(i3.*(i1 +i2)) > 0.2] --> if you set the threshold higher then your skull strip is more stringent For older versions of SPM (or OldSeg), you can use the following expression: (i3.*(i1+i2))
FSL
BET and BET2
AFNI
3dSkullStrip[2] is a program in AFNI to extract the brain from surrounding tissue from MRI T1-weighted images. The simplest command would be:
3dSkullStrip INPUTFILEThe process by default includes spatial normalization, some intensity normalization and repositioning of the brain, but to a certain extent those can be switched off. The actual skull stripping is a modified version of the BET[3] algorithm, expanding a spherical surface iteratively until it envelopes the brain. The output can be a skull stripped (masked) brain, the mask itself or different surface formats.
3dSkullStrip is called by a set of other afni functions like align_epi_anat.py, @auto_tlrc and 3dSeg. Therefore in afni_proc.py there is no seperate block for skull-stripping but options can be adjusted as parts of the respective blocks.
References
- Kristi Boesen, Kelly Rehm, Kirt Schaper, Sarah Stoltzner, Roger Woods, Eileen Lüders, David Rottenberg, Quantitative comparison of four brain extraction algorithms, NeuroImage, Volume 22, Issue 3, July 2004, Pages 1255-1261, ISSN 1053-8119, http://dx.doi.org/10.1016/j.neuroimage.2004.03.010.
- http://afni.nimh.nih.gov/pub/dist/doc/program_help/3dSkullStrip.html
Smith, Stephen M., Fast robust automated brain extraction, Human Brain Mapping 2002, Volume 17 Issue 3, page 143-155, http://dx.doi.org/10.1002/hbm.10062
- skull stripping
- disk stripping and disk mirroring
- Unity BuildSetting otherSettings Stripping Level*
- 微波传声技术(Voice to skull technology)
- NOJ [1269] Kha\'Zix\'s Skull
- Stripping HTML tags when using XSLT
- 新奇家居用品 The Wellness Skull 骷髅小床[多图]
- Stripping Unwanted Architectures From Dynamic Libraries In Xcode
- JSF: Email Address Not Stripping Spaces on Validation
- Unity iOS can handle SQLite even with Byte-Code Stripping on.
- Unity 使用 Stripping Level == Use micro mscorlib 导致 MD5.Create() 返回NULL
- Unity5 多场景 打包Assetbundle 以及 Shader Stripping 导致 LightMap 全部丢失的解决方法
- Unity5 多场景 打包Assetbundle 以及 Shader Stripping 导致 LightMap 全部丢失的解决方法
- Unity 使用 Stripping Level == Use micro mscorlib 导致 MD5.Create() 返回NULL
- unity3d Player Settings 中的Stripping Level(剥离等级)对应每个等级具体剥离了哪些库
- activiti5入门(四)流程图之六大构成元素
- spring配置<context:component-scan base-package=””/>
- CentOS7 上学习使用docker
- 谷歌原生DocumentUI文件浏览的原理
- 利用@media screen实现网页布局的自适应
- skull stripping
- mongodb怎么导入外部数据
- 基础才是重中之重~再说软件设计的各大原则
- 安卓获取首开i卡
- 各种排序算法的分析及java实现
- 发布tomcat项目之后绑定到域名,直接访问
- Codeforces Round #384 (Div. 2) B ,C ,D(规律,数学。树dp)
- JDK8 JVM Eden 2 Survivor
- 10 个鲜为人知的 Unity 技巧