三维跨孔电磁波CT数据可视化框架搭建

这篇具有很好参考价值的文章主要介绍了三维跨孔电磁波CT数据可视化框架搭建。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

三维跨孔电磁波CT数据可视化框架搭建


利用matlab实现对跨孔电磁波CT实测数据反演,并搭建了三维CT数据可视化框架,可装填实测CT反演数据。

1、三维CT可视化结果

对三维CT反演结果进行180°旋转,动态展示三维CT反演结果。

三维跨孔电磁波CT数据可视化框架搭建,信息可视化
三维CT平面图
三维跨孔电磁波CT数据可视化框架搭建,信息可视化
三维测线布置
三维跨孔电磁波CT数据可视化框架搭建,信息可视化
CT数据解译结果。

三维跨孔电磁波CT数据可视化框架搭建,信息可视化文章来源地址https://www.toymoban.com/news/detail-694911.html

2、matlab代码

2.1、CT数据格式整理并保存

close all
clear
clc

[inFileName,PathName] = uigetfile('*.txt',...
    '选择CT数据文件','MultiSelect','on');

filename = strcat(PathName,inFileName);

% 将CT数据读取出来;
data = importdata(filename);

% 将每一层的数据提取出来,以第二列数据为标准(同一深度);
x = data(:,2);
% 找出每一层的起点;
k = 1;
n = length(x);
for i = 2:n
    if x(i) ~= x(i-1)
        list(k) = i;
        k = k + 1;
    end
end
list(k) = n+1;
list = [1,list];
col = k;

% 将深度记录下来
np_depth = x(list(1:end-1));

% 找出每一行的最大列数;
row = max(data(:,1));
row = ceil(row);
% 一共有col行;

Nper = zeros(col,row);
% 将吸收系数值填充进Nper矩阵;
% 注意吸收系数填充的位置,起点靠左还是靠右;
np = data(:,3);
y = data(:,1);
for i = 1:length(list)-1
    begin = list(i);
    bend = list(i+1);
    len = bend - begin;
    np_o = np(begin:bend-1);
    np_y = y(begin);
    % 判断矩阵是在左边还是在右边;
    if np_y == 0
        Nper(i,1:len) = np_o;
    else
        Nper(i,end-len+1:end) = np_o;
    end
end

Nper = [np_depth,Nper];

% 保存吸收系数及深度
filename = strcat(inFileName(1:end-4),'.mat');
save(filename,'Nper');

contourf(Nper,30);colormap(jet);
set(gca,'ydir','reverse');
axis equal;

2.2、三维可视化

close all
clear 
clc

load('*.mat');
np1 = Nper(:,2:end);
np1_depth = Nper(:,1);
clear Nper
load('*.mat');
np2 = Nper(:,2:end);
np2_depth = Nper(:,1);
clear Nper
load('*.mat');
np3 = Nper(:,2:end);
np3_depth = Nper(:,1);


% 将矩阵左右翻转;
np1 = fliplr(np1);

% np1(np1 == 0) = nan;
% contourf(np1,100,'LineStyle','none');
% colormap(jet);colorbar;
% shading interp
% caxis([0.1,0.7]);
% set(gca,'ydir','reverse');
% axis equal;

clear np
np = zeros(50,51);
np(1:50,1:18) = np1;
np(7:50,19:35) = np2;
np(5:48,36:51) = np3;

np(np == 0) = nan;
contourf(np,80,'LineStyle','none');
colormap(hsv);colorbar;
set(get(colorbar,'title'),'string','视吸收系数[Nper/m]','fontsize',14);
shading flat
caxis([0,0.65]);
set(gca,'ydir','reverse');
xlabel('水平距离/m');
ylabel('深度/m');
axis equal;


data_new = zeros(50,51,100);
for i = 1:1000
    data_new(:,:,i) = np;
end

xslice = [10,40];
yslice = [];
zslice = 1:499:1000;
slice(data_new,xslice,yslice,zslice);
colormap('hsv');
h = colorbar;
set(get(h,'title'),'string','beta(Nper/m)');
caxis([0,0.65]);
colorbar('eastoutside');
shading interp
set(gca,'xticklabel',[]);
set(gca,'yticklabel',[]);
set(gca,'zticklabel',[]);
% axis off
alpha(0.8);
view(345,-15);
% 
spinningGIF('zk45-48.gif');

% el=-45;  %设置仰角为30度。
% for az=0:1:1080  %让方位角从0变到360,绕z轴一周
%     view(az,el);
%     drawnow;
% end

% az= 345;   %设置方位角为0
% for el=0:1:360*1000   %仰角从0变到360
%     view(az,el);
%     drawnow;
% end

% spinningGIF(fname): makes a spinning GIF of the current plot and saves it
% Usage: make your 3D plot (using plot3(...) or scatter3(...) etc.) and
% then call SpinningGIF with the file name that you want
function spinningGIF(fname)
%     axis off
%     view(0,10)
    center = get(gca, 'CameraTarget');
    pos = get(gca, 'CameraPosition');
    radius = norm(center(1:2) - pos(1:2));
    angles = pi:0.02*pi:2*pi;
    for ii=1:length(angles)
       angle = angles(ii);
       set(gca, 'CameraPosition', [center(1) + radius * cos(angle),...
                                   center(2) + radius * sin(angle),...
                                   pos(3)]);
       drawnow;
       frame = getframe(1);
       im = frame2im(frame);
       [imind,cm] = rgb2ind(im,256);
       if ii == 1
           imwrite(imind,cm,fname,'gif', 'Loopcount',inf);
       else
           imwrite(imind,cm,fname,'gif','WriteMode','append','DelayTime', 0.25);
       end
    end
end

到了这里,关于三维跨孔电磁波CT数据可视化框架搭建的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 三维重建 阈值分割 3D可视化 医学图像分割 CT图像分割及重建系统 可视化编程技术及应用

    此系统实现了常见的VTK四视图,实现了很好的CT图像分割,可以用于骨骼,头部,肺部,脂肪等分割,,并且通过三维重建实现可视化。使用了第三方库 VTK,ITK 实现分割和生不重建。 窗口分为 (横断面)、冠状面、矢状面,和3D窗口;包含了体绘制和面绘制; 效果: CT分割

    2024年02月08日
    浏览(53)
  • Unity制作数据可视化三维场景

    数据可视化大屏是这几年比较热门的一个方向,人们对数据的感知方式,也慢慢要求更严苛了。 Bi报表到数据可视化大屏,再到三维可视化大屏,这个发展趋势也体现了人们在使用数据可视化大屏时对效果的要求逐渐提高。 2维图表在过去几年的使用中,不断完善,已经有了

    2023年04月10日
    浏览(46)
  • Cesium教程(十六):动态数据三维可视化

    Cesium时间系统在动态数据可视化中发挥着重要作用。 CZML是Cesium团队制定的一种用来描述动态场景的JSON架构语言。可以描述点、线、多边形、体及其他图元。 实现效果::模型车会沿着黄色的轨迹线前行 这里以轨迹数据可视化为例,代码如下:

    2024年02月08日
    浏览(61)
  • MATLAB数学建模:数据图形可视化-三维绘图函数

    在 MATLAB 中, 我们可使用函数 surf 和 surfc 绘制三维曲面图. 调用格式如下: 以矩阵 ZZZ 所指定的参数创建一个渐变的三维曲面. 坐标 $x = 1:n, y = 1:m, $ 其中 [m,n]=size(Z)[m,n] = size(Z)[m,n]=size(Z) 以 ZZZ 确定的曲面高度和颜色, 按照 X,YX,YX,Y 形成的格点矩阵, 创建一个渐变的三维曲面. X,

    2024年02月06日
    浏览(57)
  • C#/halcon联合编程 三维点云数据可视化(ActiViz实现)

    由于甲方需要,最近开始做的一个项目的框架旋转的是C#/halcon联合编程进行的,主要设计一些三维ocr、三维缺陷检测等等。之前类似的项目框架选的是C++/Qt/PCL/vtk,突然这么一变,还是有些不适应,在第一步点云可视化就被难倒了。 在超人视觉的罗超老师的视频中找到了一种

    2024年02月03日
    浏览(46)
  • 数据可视化——用python绘制气泡图、三维散点图、多重柱形图案例

    目录 前言 一、气泡图的绘制 1、什么是气泡图?他适用于什么数据? 2、图形效果展示 3、导入需要用到的库 4、读取要分析的数据 5、检查数据是否有问题 6、将要对比数据提取出来 7、画图 二、三维散点图的绘制 1、什么是三维散点图? 2、导入需要用到的数据库 3、画图 三

    2024年02月06日
    浏览(60)
  • MATLAB slice函数绘制三维n×m×k矩阵的立体图或剖面图 —可视化四维数据

    数据可能包含测量物理对象所得的值,如管道内的温度。在此情况下,物理维度可以表示为一个空间体,用颜色表示测量的幅值。使用 slice 函数显示在空间体横截面处所测得的变量的值。 参考 1、 https://www.researchgate.net/post/How-to-display-a-3-Dimensional-matrix-by-their-values-in-MatlabFor

    2024年02月11日
    浏览(33)
  • python三维建模可视化与交互,python三维建模可视化

    本篇文章给大家谈谈python三维建模可视化与交互,以及python三维建模可视化,希望对各位有所帮助,不要忘了收藏本站喔。 一、 内容介绍 人类是那么得有创造力,我们创造、发明、设计、生产了一切大自然没有直接给予我们的东西使我们的生活变得更轻松更美好。在过去,

    2024年01月23日
    浏览(59)
  • 使用Python进行三维可视化

    使用Python进行三维可视化 Python是一种易于学习和使用的编程语言,它拥有强大的图形处理能力。在科学、工程或数据分析等领域,Python可以用来处理和生成各种图表和图像。本文将介绍如何使用Python进行三维可视化,并提供相应的源代码。 首先,我们需要安装必要的Python库

    2024年02月14日
    浏览(44)
  • 数字乡村三维可视化监控管理平台

    数字乡村是伴随网络化、信息化和数字化在农业农村经济社会发展中的应用,既是乡村振兴的战略方向,也是建设数字中国的重要内容。为了进一步提升乡村治理智能化、专业化水平,解决建设顶层缺失、数据孤岛等问题,数字孪生技术被广泛应用于数字乡村建设中。 听涛观

    2024年02月12日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包