MTLAB 批量下载 脑医学图像数据集BrainWeb: Simulated Brain Database
BrainWeb数据集的网址:https://brainweb.bic.mni.mcgill.ca/brainweb/
1. 了解 BrainWeb: Simulated Brain Database
这是一个模拟大脑数据的数据库(SBD,Simulated Brain Database)。
SBD包含:一组MRI模拟器产生的真实的MRI数据量。
两组模拟器,一组基于正常的解剖模型(Normal),一组基于多发性硬化症的解剖模型(MS)。
其中,模拟脑MRI数据是三种序列(T1-、T2-和质子密度PD-),可以设置各种切片厚度、噪声水平和强度不均匀水平模拟完整三维数据体。
2.MRI模拟器
MRI模拟器由McConnell Brain Imagingl中心开发,允许用户独立控制各种采集参数并获得真实的大脑MR图像。
该模拟器采用基于Bloch方程的第一性原理建模实现了核磁共振信号产生的离散事件模拟,并逼真地模拟了图像产生过程中的噪声和部分体积效应。
3.模拟正常大脑的三维数据体
使用Anatomical Model of Normal Brain模型模拟正常大脑的解剖数据。
可以自定义的参数为固定的3种模态、5种切片厚度、6种噪声水平和3种强度不均匀水平。
4. 下载正常大脑的三维数据体
以 模态= T1,协议= ICBM,幻像名称=正常,切片厚度= 1mm,噪声= 0%,INU = 0%为例,选择好参数后,点击下载【Download】
- 文件命名规则
- 模态 T1,T2,PD
- 协议 icmb
- 脑图像名字:正常
- 切片厚度 1mm,3mm,5mm,7mm,9mm
- 噪声水平 pn0=0%;1%,3%,5%,7%,9%
- 灰度不均匀水平 rf0=0%;20%,40%
下载的数据格式:
点击【start download】后,下载的文件格式为 .rawb,文件名为:t1_icbm_normal_1mm_pn0_rf0.rawb。图片的空间大小是181217181。
用matlab打开文件及数据:
function g = readrawb(filename, num)
% 函数readrawb(filename, num)中的第一个参数filename是欲读取的rawb文件的文件名,第二个参数num就是第多少张。
fid = fopen(filename);
% 连续读取181*217*181个数据,这时候temp是一个长度为181*217*181的向量。
% 先将rawb中的所有数据传递给temp数组,然后将tempreshape成图片集。
temp = fread(fid, 181 * 217 * 181);
% 所以把它变成了一个181*217行,181列的数组,按照它的代码,这就是181张图片的数据,每一列对应一张图。
% 生成图片集数组。图片集images数组中每一列表示一张图片。
images = reshape(temp, 181 * 217, 181);
% 读取数组中的第num行,得到数组再reshape成图片原来的行数和列数:181*217。
image = images(:, num);
image = reshape(image, 181, 217);
g = image;
fclose(fid);
end
function init_image(filename,num)
% 函数init_image(filename,num)中的第一个参数filename是欲读取的rawb文件的文件名,第二个参数num就是第多少张。输出为原始图像,未处理
%例如:init_image('t1_icbm_normal_1mm_pn0_rf0.rawb',90), init_image('phantom_1.0mm_normal_csf.rawb',90)
read=readrawb(filename, num);
% 旋转90°并显示出来
read=imrotate(read, 90);
imshow(uint8(read));
end
在命令行窗口输入:
init_image('t1_icbm_normal_1mm_pn0_rf0.rawb',90)
即可获得第90层的脑MR图像。
5.批量保存数据体的全部数据为mat文件与jpg图像文件
将全部181层的217*181大小的数据保存为mat文件与jpg图像文件,方便后续调用某一层的图像数据。
前提需要新建一个空白文件夹“results”。
clear
clc
filename='t1_icbm_normal_1mm_pn0_rf0.rawb';
for i=1:181
read{i}=readrawb(filename, i);
read{i}=imrotate(read{i}, 90);
% imshow(uint8(read{i}));
imwrite(uint8(read{i}),['.\results\', int2str(i), '.jpg']);
end
save image_data read
新:现在有20种正常解剖模型 。
下载基于 BrainWeb数据集 的 20 个正常大脑的多模态模型模拟得到的脑图
如果帮到你了,请帮我点个赞吧😄😄😄😄😄