1.实验题目:建立人体颈总动脉超声仿真模型,并画出三维示意图
1.1模型几何要求:所在深度---皮下15~24 mm,倾斜15°;
内半径---3.5 mm;
管壁厚度---1mm;
血管长度---38mm。
1.2 模型回声强度要求:周围组织回声强度是血流回声强度的10倍;
管壁回声强度是周围组织回声强度的5倍。
2.实验内容
2.1 题目分析
肺部囊肿肿泡模型
肺部囊肿肿泡模型:在x-z平面上产生圆形,因为y轴上没有限制,所以建模出来的是圆柱体。由于换能器的扫描方向是平行于y轴,所以成像是一个圆形。
实验题目
要得到血管的模型,则要在y-z平面上取点生成圆,使其在x轴上无限延伸。
% (yc,zc)是血管圆心坐标
yc=0/1000;
zc=(30-9.5)/1000;
2.2 实现血管倾斜
要实现倾斜的血管,需要不断改变z的坐标,这样从y方向扫描才可以得到倾斜的血管。
建立的血管壁模型,血管壁是一个圆环,所在的圆外半径为4.5mm,内半径为3.5mm,圆心所在位置为(yc,zc)。设置回声强度为5(默认周围组织的回声强度为1)。
将血管建模成圆柱体,在YZ平面上取(yc,zc)作为圆心,计算区分圆内外的回声响度区别。实现倾斜15度,处理回声响度时候,只需要改变圆心的zc坐标,令zc=9.5/1000+z_start-x*tan_15;
令y_size = 0/1000 ,取了圆柱中心的切面进行建模,这样可以获得比较好的成像效果
% (yc,zc)是血管圆心坐标
% 血流模型
% 周围组织回声强度设为1,血流回声强度设为0.1
yc=0/1000;
zc=(30-9.5)/1000-tan_15*x;
inside = ( ((y-yc).^2 + (z-zc).^2) <r1^2);
amp = amp .* (1-inside)+ 0.1*amp .* inside;
% 血管壁模型
% 周围组织回声强度设为1,管壁回声强度设为5
yc=0/1000;
zc=(30-9.5)/1000-tan_15*x;
inside = (( ((y-yc).^2 + (z-zc).^2) < r2^2 & ((y-yc).^2 + (z-zc).^2) > r1^2)) ;
amp = amp .* (1-inside) + 5*amp .* inside;
2.3 成像设置
(1) 在建模正确的条件下,调整固定焦点和发射焦点可以让成像更清晰;我把固定焦点放在了整个模型的中间,把发射焦点放在了z轴中心;
(2)调整对数压缩系数; 发现将对数压缩的系数改大,会使图像整体变暗,改小会使图像整体变亮;
3 实验步骤
(1)通过field.m程序初始化。
(2)通过mk_pht.m程序进行散射体设置,散射体的数量越多,最后的成像效果会更好。在囊肿模型中散射体的数量是1000000,可以将这个数量改小成10000,这样运行速度会更快。
(3)通过sim_img.m程序进行模型扫描,设置扫描线数no_line=50或no_line=128;也可以设置换能器的间距,采样频率,中心频率,焦距
(4)通过make_image.m程序进行成像,修改成像范围
4 实验结果
no_line=128,散射体数量为1000000
我的配置: MATLAB 2023a
N=10000
log_env=20*log10(log_env);
fs=120e6;
focal_zones=[25:5:100]'/1000;%发射焦点
z_focus=25/1000; focus=[0 0 25]/1000;
5 问题总结
我一直执着于在构建的组织里面仿真出一个倾斜的圆柱体,但是当y_size比较大的时候,血管边缘成像非常不清晰。此时可以将构建模型时的宽度改小,甚至完全可以令y_size等于0,取一个剖面出来,这样的成像是最为清晰的。除了将血管建模成圆柱体外,甚至可以利用点到直线距离公式简单粗暴地将血管建模成一个平行四边形
inside=(abs(z+x*tan_15-(30-9.5)/1000)/sqrt(1+tan_15*tan_15)>r1&abs(z+x*tan_15-(30-9.5)/1000)/sqrt(1+tan_15*tan_15)<r2);
inside=(abs(z+x*tan_15-(30-9.5)/1000)/sqrt(1+tan_15*tan_15)<r1);
6 建模部分完整代码
function [positions, amp] = cyst_pht (N)
%组织体的范围限定
x_size = 38/1000;
y_size = 0/1000;
z_size = 30/1000;
z_start = 10/1000;
x = (rand (N,1)-0.5)*x_size;
y = (rand (N,1)-0.5)*y_size;
z = rand (N,1)*z_size + z_start;
%生成散射题
amp=randn(N,1);
r1=7/2/1000;%血流
r2=9/2/1000;%血管
% 定义圆柱参数
% 正切
tan_15 = tan(deg2rad(15));
% (yc,zc)是血管圆心坐标
% 血流模型
% 周围组织回声强度设为1,血流回声强度设为0.1
yc=0/1000;
zc=(30-9.5)/1000;
inside = ( ((y-yc).^2 + (z-(zc-tan_15*x)).^2) <r1^2);
amp = amp .* (1-inside)+ 0.1*amp .* inside;
% 血管壁模型
% 周围组织回声强度设为1,管壁回声强度设为5
yc=0/1000;
zc=(30-9.5)/1000;
inside = (( ((y-yc).^2 + (z-(zc-tan_15*x)).^2) < r2^2 & ((y-yc).^2 + (z-(zc-tan_15*x)).^2) > r1^2)) ;
amp = amp .* (1-inside) + 5*amp .* inside;
positions=[x y z];