MATLAB 中的 MRI 图像分割
在数字图像处理领域,有时我们需要将主要物体从图像中分离出来以便清晰观察。图像分割是启用此分区的过程。在这种方法中,每个像素都被分配了一个标签,并且共享某些特征的像素被分配了相同的标签编号。该技术广泛用于医学领域以定位感兴趣的对象。
它是一种将数字图像分割成多个片段的技术。该过程广泛用于医学诊断。在本文中,我们使用形态学操作从 MRI 图像中分割出大脑部分。进行分割是为了便于对分割后的图像进行分析。
什么是医学影像?
该术语是指医疗专业人员用来观察人体内部以进行诊断、监测和治疗的技术。现代科学时代有各种可用的技术。
- MRI:磁共振成像
- CT扫描:计算机断层扫描
- X 射线:使用称为 X 射线的电磁波。
- 超声波:使用声波创建身体内部组织的图像。它不使用任何辐射。
图像分割的类型:
存在多种类型的图像分割。
- 阈值分割
- 基于边缘的分割
- 基于区域的分割
- 流域分割
在本文中,我们致力于分离 MRI 图像的大脑部分。
使用的形态学操作:
- 开放:它将小的白色部分或一堆明亮的像素转换为黑暗的部分,而不改变较大的黑暗部分的大小。
- 关闭:它将小的黑色部分或一堆暗像素转换为明亮的部分,而不改变较大的白色部分的大小。
使用的函数:
- imread( ) 内置函数用于读取图像。
- imtool( ) 内置函数用于显示图像。
- graythresh( ) 内置函数用于计算将灰度图像转换为二进制的 Ostu 阈值。
- im2bw( ) 内置函数用于将灰度图像转换为二进制。
- strel( ) 内置函数用于定义结构元素。
- imopen( ) 内置函数用于应用开放形态学运算。
- bwlabel( ) 内置函数用于将标签分配给图像的每个像素。
- imclose( ) 内置函数用于应用闭合形态操作。
- double( ) 内置函数用于将 unit8 对象转换为双精度格式。
脚步:
- 阅读 MRI 图像。
- 将其转换为二进制。
- 应用打开操作。
- 应用连通分量分析。
- 识别大脑部分并将其分离出来。
- 在中间步骤中显示不同的图像。
例子:
Matlab
% MATLAB code for
% Separate the brain part from MRI image.
% read the mri image.
k=imread("mrii.jpg");
% display the image.
imtool(k,[]);
% convert it into binary image.
k1=im2bw(k,graythresh(k));
% display the binary image.
imtool(k1);
% Make the brain largest connected component.
% We need to apply opening operation.
% define the structuring element.
SE=strel('disk',7,4);
% apply the opening operation.
k2=imopen(k1,SE);
% display the image now.
imtool(k2);
% apply connected component analysis.
b=bwlabel(k2);
% display the colored map image.
imtool(b,[]);
% brain is component labeled as 9.
% set all other component as 0 except brain.
b(b~=9)=0;
% display the brain part.
imtool(b);
% inside the brain part, black portion is there.
% close the black pixels inside brain part.
k3=imclose(b,strel('disk',18));
% display the brain part.
imtool(k3);
% extract the brain from original image.
k4=k3.*double(k);
% display the real brain from original image.
imtool(k4,[]);
输出:
代码说明:
- k=imread(“mrii.jpg”);此行读取 mri 图像
- k1=im2bw(k,graythresh(k));此行将图像转换为二进制图像
- SE=strel('磁盘',7,4);这一行定义了结构元素。
- k2=imopen(k1,SE);这条线应用了打开操作
- b=bwlabel(k2);此行应用连通分量分析
- b(b~=9)=0;此行将所有其他组件设置为 0,除了大脑,因为大脑被标记为 9。
- k3=imclose(b,strel('磁盘',18));这条线关闭了大脑部分内部的黑色像素,因为在大脑部分内部,黑色部分就在那里。
- k4=k3.*双(k);这条线从原始图像中提取大脑