毕业设计-基于 MATLAB 的医学超声图像处理仿真平台设计与研究

目录

前言

课题背景和意义

实现技术思路

一、平台的总体设计

 二、医学超声图像处理仿真平台算法概述及 GUI 实现

实现效果图样例

最后


前言

    📅大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后面临的就业升学做准备,一边要为毕业设计耗费大量精力。近几年各个学校要求的毕设项目越来越难,有不少课题是研究生级别难度的,对本科同学来说是充满挑战。为帮助大家顺利通过和节省时间与精力投入到更重要的就业和考试中去,学长分享优质的选题经验和毕设项目与技术思路。

🚀对毕设有任何疑问都可以问学长哦!

选题指导: https://blog.csdn.net/qq_37340229/article/details/128243277

大家好,这里是海浪学长毕设专题,本次分享的课题是

🎯基于 MATLAB 的医学超声图像处理仿真平台设计与研究

课题背景和意义

随着生活质量的提高和现代医疗科技的发展,科技辅助使人类实现越来越强大的 解决能力,医学图像检查技术是当今医疗领域内必不可少的辅助技术。医学超声检查 作为病灶初筛的首选,是因为它无创、时间分辨率高且便于实现价格低廉,但超声图 像不同于 CT、磁共振等图像,它由于其成像原理更加容易受外界环境因素及设备参 数等限制条件影响,导致图像不清晰、对比度低、灰度不均匀且组织边界模糊不清等 问题。而医疗设备自带的图像处理软件只能满足医生在医疗设备上对图像进行简单处 理,并不能提供学术研究平台,并且目前医学图像多为 DICOM(Digital Imaging Communications in Medicine)格式,使得现有的一般图像处理软件并不能直接读取处 理。因此,开发一套能够读取和改善医学超声图像质量的仿真平台成为病灶研究的切 实需求。基于 MATLAB 设计了一套医学超声图像处理仿真平台,对图像进行图像增强、图像滤波、图像分割、形态学处理及边缘检测等功能,实现多样化的医学图形处理方式,扩展了医学图像研究的方法,为相关医学图像处理技术算法的研究和改进提供了有效的参考。

实现技术思路

一、平台的总体设计

平台的层次结构和设计原则
医学超声图像处理仿真平台的图形对象包括图形窗口、坐标轴、用户菜单、用户控件、文字、图像、区域块和方框等。如图
所示,是本平台句柄图形体系的对象层次结构。

在设计医学超声图像处理仿真平台时应遵循以下的界面设计原则:

1)简单性。(2)一致性
(3)习常性。(4)其他考虑因素
平台的设计步骤

MATLAB GUI 界面设计有两种设计方法:一种是采用直接编写 M 文件的方法完成 GUI 设计;另一种是通过 MATLAB GUIDE 来开发系统界面。本平台界面设计利用两种方法相结合的方式,先采用 GUIDE 构建界面,如图

 在生成的 M 文件中编写子模块弹出的子界面窗口中的控件。该 医学超声图像处理仿真平台的主界面及各级子界面由静态文本(Static Text)、按钮 (Push Button)、滚动条(Slider)、按钮组(Button Group)、坐标轴(Axes)等控件 组合而成,如图:

 平台的总体设计框架 医学超声图像处理仿真平台的总体设计框架如图所示。该系统主要针对医学 超声图像进行处理,基本涵盖了医学图像处理的经典处理方法,有图像增强、图像滤 波、边缘检测、图像分割、形态学处理等模块

 采用下拉菜单、按钮与滑块相结合的方式来调用函数实现各功能。该平台主界面设计分为开始引导界面和主界面两部分, 如图:

 二、医学超声图像处理仿真平台算法概述及 GUI 实现

仿真系统包含
6
个基本图像处理模块,其中包含的每个图像处理功能之间既可独立又可相互联系,满足了用户的不同需求。
文件与视图
平台针对医学超声图像进行处理,与其他数字图像不同的是,医学超声图像的格式为 DICOM
格式。
DICOM
格式是
Digital Imaging Communications in Medicine
的缩写,表示医学的数字成像和通信。
用户通过引导界面进入仿真系统后,在文件下拉菜单中选择打开、保存、退出等功能,可在系统中执行相应操作,其具体实现方法为:
(1)打开
[filename, pathname]=uigetfile({*.dcm'},’选择图像’)
if ischar(pathname) %判断路径是否为字符数组
fpath=[pathname filename];
I=dicomread(fpath); %读取 DICOM 图像
imshow(I,[]); %显示图像
axes(handles.axes1); %指定在原图像窗口显示图像
else
warndlg('您没有选择任何图像')
end

当用户点击文件下拉菜单中“打开”按钮时,会弹出如图:

 如果用户错误选择或未选择,则会弹出如图:

 (2)保存

[filename, pathname]=uiputfile('*.dcm','DCM files'},'保存');
if isequal(filename,0)||isequal(pathname,0) %判断路径是否一致
return;
else
fpath=fullfile(pathname,filename); %获取文件路径
I_axes2=getimage(handles.axes2); %获取处理后窗口图像
dicomwrite(I_axes2,fpath); %写入指定路径的 DICOM 文件
end

(3)退出

退出之前要对系统进行两个判断:一是被处理图像是否保存过,二是被处理图像 是否更改过。具体操作是在系统的 OpeningFcn 中添加如下两个应用程序数据:

setappdata(handles.figure_yxtxclxt,’bSave’,false);
setappdata(handles.figure_yxtxclxt,’bChanged’,false);
在每个图像处理功能的回调函数下添加程序:
setappdata(handles.figure_yxtxclxt,’bChanged’,true);
在保存按钮的回调函数下添加程序:
setappdata(handles.figure_yxtxclxt,’bSave’,true);
视图模块包含图像缩放、图像旋转、图像平移、测量等基本操作。如图
所示为平台文件与视图下拉菜单。

图像增强

图像增强处理技术是医学图像处理领域中一项很重要的技术。图像增强是为了满 足图像的特定应用,改善图像的质量或视觉效果。

1、灰度级变换
灰度级变换是把图像的对比度从弱变强的过程,所以灰度级也称为对比度变换。灰度映射函数既可以是线性函数,也可以是分段函数,还可以是非线性函数。而非线性灰度变换常用的方法有对数变换和指数变换,如图 :


1
) 线性灰度变换
原图像的灰度级为
݂f(x,y)
,
与经灰度变换后的灰度级g(x,y)
之间的函数关系式为:

MATLAB 图像处理工具箱提供了
imadjust
()函数用于图像的灰度变换,本平台实现该功能的主要程序如下:

 

h=xxbh_imadjust; %调用名为xxbh_imadjust的子程序
setappdata(handles.figure_yxtxclpt,'bChanged',true); %用于存放数据判断程序被更改为真
子程序:
val=get(hObject,'Value');
set(handles.txt_gamma,'String',num2str(val); %将滑动条的值显示在文本框
h_yxtxclpt=getappdata(handles.figure_imadjust,'h_yxtxclpt'); %获得yxtxclpt的figure句柄
axes(h_yxtxclpt.axes2); %指定图像显示在axes2中
I=getappdata(h_yxtxclpt.figure_yxtxclpt,'I'); %获得yxtxclpt的I句柄
I1=imadjust(I,[],[],val); %对I图像进行线性灰度变换
handles.I1=I1; %定义图像I1的句柄
subimage(I1); title('线性灰度变换'); %显示图像并命名
impixelinfo %显示图像像素信息
如图
为本平台对医学超声胆囊结石图像进行线性灰度变换

通过图
滑动条实现参数
gamma
的调节,当
gamma

<1
时,图像灰度增大,图像变亮。

 下图为对医学超声胆囊结石图像分别在gamma=0.5、gamma=1gamma=1.5gamma=2时的灰度变换。

(2) 分段线性灰度变换 有时为了突出某些感兴趣的目标或者灰度区间,数字图像增强技术中通常扩大感 兴趣的灰度范围,抑制不感兴趣的目标或者灰度区间,这就是所谓分段线性灰度变换方法。

 

 如图为使用本平台对医学超声胆囊结石图像进行分段线性灰度变换

 (3) 非线性灰度变换

非线性灰度变换常用的方法有对数变换和指数变换。 对数变换。原图像f(x,y)与对数变换后的图像g(x,y)
的函数关系式如下:

对数变换函数图像:

 

2、
直方图均衡化
直方图均衡化处理是以累计分布函数变换法为基础的直方图修正法。直方图均衡化处理是以累计分布函数变换法为基础的直方图修正法。

平台实现本功能程序如下:
I1 = handles.I1;
if ~isempty(I1) %判断是否打开图像
figure,imhist(I1),title('原图像直方图') %显示原图像直方图
axis tight,xlabel('灰度级'),ylabel('像素数'); %设定x,y坐标轴名称
I2 = adapthisteq(I1); %对图像进行自适应直方图均衡化
figure,imhist(I2),title('处理后图像直方图') %显示原图像直方图
axis tight,xlabel('灰度级'),ylabel('像素数'); %设定x,y坐标轴名称
axes(handles.axes2); %规定图像显示在处理后图像窗口
subimage(I2); title('adapthisteq直方图均衡化'); %显示图像并命名
impixelinfo %显示图像像素信息
else
msgbox('没有图像进行直方图均衡化');
end
setappdata(handles.figure_yxtxclpt,'bChanged',true);
直方图均衡化:

 3、 锐化

图像锐化也可以实现图像增强的目的。通过增强图像中的纹理、边缘部分,使边缘和轮廓线模糊的图像以及图像细节信息变得更清晰

图像滤波

超声图像也存在着分辨率低,噪声干扰等缺点,超声图像与 MRI 和 CT 等医学影像相比,由于组织内超声散射信号的随机性导致生成图像中密布 着不规则的噪声,使图像变得模糊。因此,需要对超声图像进行图像滤波处理。

1) 均值滤波界面:

 2、中值滤波

 
中值滤波是一种非线性滤波方法
3 、
高斯平滑滤波
高斯滤波是平滑线性滤波的一种,很适合去除高斯噪声。高斯滤波器不像均值滤波器那样采用相同的加权系数,而是采用带有权重的平均值。
3
×
3
模板的高斯平滑滤波公式:

图像分割
医学图像的图像分割是根据影像组织区域内的相似性、一致性,以及区域间的差异性将图像分割成若干区域的过程。 
1、阈值分割
Otsu
算法是一种自动的、无监督参数的算法,是在判决分析最小二乘法原理的基础上,经过推导得到的阈值分割方法。

手动阈值分割:

 利用平台阈值分割功能对医学超声胆囊结石图像进行分割:

 2、区域分割

区域分割的实质是把具有某种相似性质的像素连接起来,从而构成最终的分割区 域。这种分割方法利用了图像的局部空间信息,可以有效克服其他方法存在的图像分 割空间不连续的缺点。

平台代码:

I=double(I)/255; %将图像转化为双精度型
[M,N]=size(I); %确定图像大小
[y,x]=getpts; %获得区域生长起始点
x1=round(x); %横坐标取整
y1=round(y); %纵坐标取整
seed=I(x1,y1); %将生长起始点灰度值存入seed中
Y=zeros(M,N); %作一个全零与原始图像等大的图像矩阵Y,作为输出图像矩阵
Y(x1,y1)=1; %将Y中与所取点相对应位置的点设置为白场
确定在生长过程中的相似性判别生长准则及区域生长过程停止的条件:
sum=seed; %储存仓符合区域生长条件的点的灰度值的和
suit=1; %储存符合区域生长条件的点的个数
count=1; %记录每次判断一点领域8点符合条件的新点的数目
answer =inputdlg({'阈值t:'},'input',1,{'0.073'}); %设置阈值输入对话框
threshold=str2num(answer{1});
while count>0 %记录判断一点领域8点时,符合条件的新点的灰度值之和
s=0;
count=0;
for i=1:M
for j=1:N
if Y(i,j)==1 %判断此点是否为图像边界上的点
if(i-1)>0&&(i+1)<(M+1)&&(j-1)>0&&(j+1)<(N+1)
%判断点领域8点是否符合域值条件
for u=-1:1 %u,v为偏移量
for v=-1:1
%判断是否未存在于输出矩阵Y,并且为符合域值条件的点
if Y(i+u,j+v)==0 &&abs(I(i+u,j+v)-seed)<=threshold
%符合以上两条件即将其在Y中与之位置对应的点设置为白场
Y(i+u,j+v)=1;
count=count+1;
s=s+I(i+u,j+v); %此点的灰度值加入s中
end
end
end
end
end
end
end
suit=suit+count; %将n加入符合点数计数器中
sum=sum+s; %将s加入符合点的灰度值总和中
seed=sum/suit; %计算新的灰度平均值
end
figure,imshow(Y),title('区域分割后图像')

区域分割:

形态学处理 

数学形态学在医学图像处 理中常被用来提取图像中区域形状的有用分量,如边界、骨架等。数学形态学从集合 的角度来描述和分析信号,形成了一套完整的理论方法和算法体系

边缘检测
图像最基本的特征是边缘,边缘是图像局部特性不连续(突变)的结果。
1、Robert
算子
Robert
算子是一种利用局部差分算子寻找边缘的算子。
2、Sobel
算子
Sobel
算子的两个卷积计算核分别为

3、Prewitt
算子
Prewitt
算子的两个卷积计算核分别为:

4、LoG
算子(
Laplacian of Gaussian
LoG
算子是基于二阶导数的边缘检测算子,该算子基本思想如下,先用高斯函数对图像进行滤波,然后对滤波后的图像进行拉普拉斯运算,算得的值等于零的点认为是边界点.

实现效果图样例

图像处理中的分割:

我是海浪学长,创作不易,欢迎点赞、关注、收藏、留言。

毕设帮助,疑难解答,欢迎打扰!

最后


版权声明:本文为qq_37340229原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
THE END
< <上一篇
下一篇>>