目录
前言
课题背景和意义
实现技术思路
一、平台的总体设计
二、医学超声图像处理仿真平台算法概述及 GUI 实现
实现效果图样例
最后
大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后面临的就业升学做准备,一边要为毕业设计耗费大量精力。近几年各个学校要求的毕设项目越来越难,有不少课题是研究生级别难度的,对本科同学来说是充满挑战。为帮助大家顺利通过和节省时间与精力投入到更重要的就业和考试中去,学长分享优质的选题经验和毕设项目与技术思路。
对毕设有任何疑问都可以问学长哦!
选题指导: https://blog.csdn.net/qq_37340229/article/details/128243277
大家好,这里是海浪学长毕设专题,本次分享的课题是
基于 MATLAB 的医学超声图像处理仿真平台设计与研究
MATLAB GUI 界面设计有两种设计方法:一种是采用直接编写 M 文件的方法完成 GUI 设计;另一种是通过 MATLAB GUIDE 来开发系统界面。本平台界面设计利用两种方法相结合的方式,先采用 GUIDE 构建界面,如图
在生成的 M 文件中编写子模块弹出的子界面窗口中的控件。该 医学超声图像处理仿真平台的主界面及各级子界面由静态文本(Static Text)、按钮 (Push Button)、滚动条(Slider)、按钮组(Button Group)、坐标轴(Axes)等控件 组合而成,如图:
平台的总体设计框架 医学超声图像处理仿真平台的总体设计框架如图所示。该系统主要针对医学 超声图像进行处理,基本涵盖了医学图像处理的经典处理方法,有图像增强、图像滤 波、边缘检测、图像分割、形态学处理等模块
采用下拉菜单、按钮与滑块相结合的方式来调用函数实现各功能。该平台主界面设计分为开始引导界面和主界面两部分, 如图:
[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);
图像增强
图像增强处理技术是医学图像处理领域中一项很重要的技术。图像增强是为了满 足图像的特定应用,改善图像的质量或视觉效果。
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=0.5、gamma=1、gamma=1.5、gamma=2时的灰度变换。
如图为使用本平台对医学超声胆囊结石图像进行分段线性灰度变换
(3) 非线性灰度变换
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、中值滤波
手动阈值分割:
利用平台阈值分割功能对医学超声胆囊结石图像进行分割:
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('区域分割后图像')
区域分割:
形态学处理
数学形态学在医学图像处 理中常被用来提取图像中区域形状的有用分量,如边界、骨架等。数学形态学从集合 的角度来描述和分析信号,形成了一套完整的理论方法和算法体系
图像处理中的分割:
我是海浪学长,创作不易,欢迎点赞、关注、收藏、留言。
毕设帮助,疑难解答,欢迎打扰!