精华内容
下载资源
问答
  • 介绍了MatLab Web Server的工作原理,探讨了MatLab的科学计算与图形展示功能WEB平台使用的方法,并通过一个具体的例子,介绍了基于MatLab web Server的交互式网络课件开发的实施方法,展示了MatLab 远程教学...
  • MATLAB鼠标多边形交互提取感兴趣区域roi,并背景图上对该区域进行不同的colormap颜色映射 帮医院的师兄写的一段小代码,初次接触matlab,语法写的很简陋,希望对大家有帮助吧。 先上效果图 大致思路 原图进行...

    MATLAB鼠标多边形交互提取感兴趣区域roi,并在原背景图上对该区域进行不同的colormap颜色映射

    帮医院的师兄写的一段小代码,在灰度图上对感兴趣区域roi叠加上相应的彩色图。初次接触matlab,语法写的很简陋,希望对大家有帮助吧。

    先上效果图

    在这里插入图片描述在这里插入图片描述

    大致思路

    1. 原图进行鼠标交互,对兴趣区域周边点几个点
    2. 各个点连线将感兴趣区域roi圈起来
    3. 保留原图感兴趣区域部分
    4. 对感兴趣区域进行不同于原图的颜色映射colormap生成新图
    5. 将原图与新图直接按位置叠加在一起

    解释都在代码里

    
    %% 读取数据
    clear all
    %save_path='D:\picture\';     %图片地址文件夹   
    %img_path_list = dir(strcat(save_path,'*.jpg'));    %仅读取文件夹中的.jpg文件
    %picture = imread’MR.dcm‘;
    filename = 'fat00004';
    dcm = dicomread(filename);
    info = dicominfo(filename);
    dcm = double(dcm); % 转为double方便后续处理
    
    %% 归一化处理(此处也可直接使用mat2gray()函数)
    lv = min(dcm(:));
    uv = max(dcm(:));
    dcmIM = (dcm - lv)/(uv - lv);
    
    %% 显示
    figure
    colormap gray;
    imagesc(dcmIM)
    %以下语句保存第一张图片(背景图)01.png
    Frame=getframe;
    imwrite(Frame.cdata,'01.png')
    
    i=1;%循环计数,从1开始
    BW3 = zeros(320,320);%设置一个和原图一致范围的零矩阵接收提取区域
    while (i<6)%循环执行end前面的语句,到不满足括号条件结束
        [x,y] = ginput(6);%鼠标点击6次
        BW3  = BW3+BW ;%存储多次提取的区域
        i= i+1;
    end
    L = double(dcm).*BW3  ;%L为提取的roi图(矩阵,可以在工作区查看其数值)
    colormap jet;%此处为生成roi的颜色图colormap,可以按照自己的需求更改,如jet变为hot
    %xlswrite('tongji.xlsx',L);  %F:\test.xls为保存文件的目录和文件名
    %subplot(122), imagesc(double( dcm+L))
    imagesc(double( L))%生成显示roi图
    %以下语句保存第二张图片(roi图)02.png
    Frame=getframe;
    imwrite(Frame.cdata,'02.png')
    
    I=imread('01.png');        %读入图像01.png,赋值给I
    J=imread('02.png');   %读入图像02.png,赋值给J
    K=imadd(I,J);                %进行两幅图像的叠加,可以设置不透明度如K=imadd(0.6*I,0.4*J);    
    %set(0,'defaultFigurePosition',[100,100,1000,500]);%修改图形图像位置的默认设置
    %set(0,'defaultFigureColor',[1 1 1])%修改图形背景颜色的设置
    subplot(131),imshow(I); %显示原图
    subplot(132),imshow(J); %显示roi图
    subplot(133),imshow(K); %显示叠加以后的图像
    
    展开全文
  • 一些涉及到数据处理的GUI界面,为了加强用户交互的功能,...matlab工具栏中的数据游标功能可以读取数据图中的数据,并且在图中显示出横纵坐标。在OpeningFcn函数中加入一句set(hObject,'toolbar','figure');就可以...
    一些涉及到数据处理的GUI界面,为了加强用户交互的功能,往往需要能够在图像上取点并对获取的坐标进行处理。今天做了个例子,简要介绍一下三种获取图像坐标的方法。一、matlab工具栏中自带的数据游标功能。

    7b37558a58b62b150fba327ac0c07ea5.gif

    matlab工具栏中的数据游标功能可以读取数据图中的数据,并且在图中显示出横纵坐标。在OpeningFcn函数中加入一句set(hObject,'toolbar','figure');就可以打开图像界面的工具栏。a4b4f7327c60296a58424e02d1855ea8.png或者在fig界面中双击背景,进入figure的属性编辑器,找到toolbar选项将其选择成‘figure’即可。

    65478a99cab8a282c363489dc2a19261.png

    利用工具栏中自带的数据游标功能很简单方便,但是有几个缺点:1、只有数据图才能用数据游标功能,如果是一张图片,数据游标功能就失效了。此外,只能获取图上的数据点的坐标,非数据点的位置坐标是获取不到的。2、获取的坐标只能显示在图上,并不能得到它并进行处理,比如说你想将自己在图上先后选取的坐标点用折线图连起来,不好意思,办不到。二、添加鼠标点击事件的监控函数,实时获取鼠标点击处的坐标值

    5c9a01a3c22ea1c2ccb4dfc9480d4549.gif

    具体的程序如下截图所示。在画图的时候,记得把句柄赋值给一个变量。本例子中我将画出来的数据图的句柄赋给h,然后加入一句语句:set(h,'ButtonDownFcn',{@myim_ButttonDownFcn,handles});。ButtonDownFcn是监测到点击后执行的函数,所以这句程序的意思就是当监测到图像h上有点击事件时,就执行myim_ButttonDownFcn这个函数。然后自己编辑一个myim_ButttonDownFcn函数,获取当前坐标上鼠标的位置信息就行了。

    554e294c65dd700ac25204514887ab66.png

    这种方法的特点是:1、可获取数据图上的数据点的坐标,非数据点的位置坐标获取不到。如果是一张图片,则所有像素点的位置都可以获取的到。2、可以对获取的坐标值进行处理。

    三、利用matlab自带的ginput函数

    99efe42143894a319fe7113bbd1eaaf7.gif

    ginput提供了一个十字光标使我们能更精确的选择我们所需要的位置,并返回坐标值。函数的三种调用形式为:

    [x,y] = ginput(n)

    [x,y] = ginput

    [x,y,button] = ginput(...)

    对于[x,y] = ginput(n),能使你从当前的坐标系中读取n个点,并返回这n个点的x,y坐标,均为n×1的向量。可以按回车提前结束读数。[x,y] = ginput 可以无限的读取坐标直到按下回车键。[x,y,button] = ginput(...) 返回x和y的坐标,以及button值(1=左键,2=中,3=右)。

    本例中,我们添加了一个按钮,在按钮的回调函数中调用ginput来实现鼠标取值,程序如下截图所示:

    19856d6ddb0062a473d767e0be9e51b4.png

    具体的程序注释都体现在截图中了。这种方法的特点是:

    1、有一个十字光标实时跟踪鼠标,可以帮助更精确的取值;但是十字光标覆盖整个界面,简直不要太丑。

    2、除了我们想要取值的图像区域,整个界面都可以点击并获取坐标值(非图像区域的坐标值是按照数据图的坐标轴扩展出来后给定的),不够严谨。这也是ginput函数被广泛诟病的地方。


    其实,自己改动一下ginput函数,就可以将其十字光标限制到图像区域,此外,还可以修改十字光标的粗细、颜色等等。比如下面的动图所示:

    b8e353a0714297378ca467f4403becc4.gif

    c40f0fafd2b167567b5b91eeb18bcf2b.gif

    这个改动说来话长,下一篇具体介绍一下如何修改ginput函数。
    展开全文
  • 为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并很大程度摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。
  • matlab 图形化GUI编程

    2020-02-23 18:06:37
    本文首先Github更新,同时也会CSDN和知乎同步更新。 用户界面分成两种:TUI(文本交互界面)和 GUI(图形化交互界面),Matlab支持GUI开发,官方Help文档中没有过多的资料参考。而我们...
    
    
    
    

    matlab GUI 使用技巧

    本文首先在Github上更新,同时也会在CSDN和知乎同步更新。

    用户界面分成两种:TUI(文本交互界面)和 GUI(图形化交互界面),Matlab支持GUI开发,官方Help文档中没有过多的资料参考。而我们在设计界面时,往往某些简单的功能按理来说一定会有,但是在网上查资料(博客等)都是非常杂乱,有时候因为软件版本的问题语法并不一定有效,很难准确的找到自己想要的解决办法。

    我写过几个GUI的项目,每次写都要重新想语法,为了方便起见,在此总结一些迅速上手的方法。


    编写一个好的GUI界面注意事项

    • 各控件按一定原则命名
    • 控件位置要编程设置
    • 利用控件属性快速实现特定功能

    控件命名规范

    每当你将一个空间拖动到图窗时,系统会生成一个默认的控件名字,这个名字很重要,因为你在编程遇到和这个控件相关的功能时都要使用这个名字,默认的名字多了就记不住,所以每当拖出一个新的控件时,在保存前要修改名字,这个名字在控件的 Tag 属性上。


    设置控件位置

    我早期写GUI时,控件的位置都是手动调,往往细微的部分调起来十分麻烦。控件少还可以应付,但是当控件多,或者界面层次复杂(如多个面板切换显示)时,手动基本无法完成调节。

    控件都有一个 Position 属性。这个属性在help文档中由四个元素组成。分别为 [left bottom width height]。这四个元素除了主图窗其他都是归一化显示。

    • left :控件左下角的横坐标
    • bottom :控件左下角的纵坐标
    • width : 控件的横向长度
    • height : 控件的纵向高度

    注意查询控件属性

    GUI编程中无非就是想得到某些控件的参数,或者改变某些控件的状态,这在网上并不能准确查到。其实有两种方法可以快速实现功能。

    • 查控件的属性,观察哪些属性是你想要改变的,直接在程序里改变即可。
    • debug,观察某控件的状态,改变属性看是否实现你想要的功能。

    学会查询属性和修改属性,GUI就可以无师自通了,都不需要在网上搜索。


    其他

    bug

    1.不知道是我使用的问题,还是matlab自己的bug,如果在axes中显示图片的话,有时候会不显示,打开fig界面后会发现对应的axes属性Tag消失。我的解决办法是每次遇到这种情况,给Tag属性填上原来的名字,然后再右键->查看回调->CreatFcn

    生成exe文件

    在Application Complier 中可以生成exe文件。

    • Runtime downloaded from web 生成的exe需要在有matlab环境下运行。
    • Runtime included in package 生成的exe可以在没有matlab的电脑中安装。
    展开全文
  • 主要使用的是 ginput 和 imcrop 函数,使用 ginput 函数会出现一个交互式的十字箭头屏幕让你选取图像的范围,然后根据下面的程序就可以计算了。 clear all clc; pic = imread('1.tif'); imshow(pic)...

    利用MATLAB现有的很多函数和工具对于图像处理方面是很方便的。
    这个程序主要是实现对于给定的 tif 图像,计算自定义范围内像素的均值。主要使用的是 ginput 和 imcrop 函数,使用 ginput 函数会出现一个交互式的十字箭头在屏幕上让你选取图像的范围,然后根据下面的程序就可以计算了。

    clear all
    clc;
    pic = imread('1.tif');
    imshow(pic);
    data=[];
    for i=1:48  %提取多少次就输多少
        imshow(pic);
        [x,y] = ginput(2);%确定图像上的两点利用ginput函数,返回值是两点的坐标
        pic_1 = imcrop(pic,[x(1),y(1),abs(x(1)-x(2)),abs(y(1)-y(2))]);
             %利用imcrop函数对图像进行切割,输入参数是一个定点坐标,
             %从该定点出发向右abs(x(1)-x(2)),向下abs(y(1)-y(2))的区域进行切割
        figure,imshow(pic_1);
        A=pic_1;
        a(i)=mean2(A)  %计算所选区域的像素均值
        data=[data;a(i)]; %将循环的值赋给数组data
        close all  %关闭显示的所有图形窗口
    end
    xlswrite('2.xlsx',data); 
    

    这只是个简单的小程序,也可以计算一下选定范围内的最大值和最小值等,缺点就是如要选取的范围个数较多的话可能会比较麻烦,不过这个方法可以在不知道位置的情况下直接根据图像上的位置来进行计算;如果知道要计算的范围的坐标的话就不用这么麻烦了,直接计算就可以了。

    展开全文
  • 图像配准多采用基于图像特征点的方法,这种方法易于用计算机处理并且容易实现人机交互,其重点在于如何提取图像的有效特征点。对图像拼接技术的目的、意义、国内外研究现状、发展方向以及本课题研究的目的和意义...
  • MATLAB在信息分析、数据分析以及研究和算法开发等一些专门领域中被大量使用。人们在MATLAB发布的特定学科的代码,被组织成称为工具箱的函数库,也被广泛使用。在技术培训中,MATLAB作为计算机实验室研究...
  • Python语言进行算法仿真时需要实时显示障碍物和运动物的当前位置和轨迹,利用Anaconda的Python打包集合,Spyder中使用Python3.5语言和matplotlib实现路径的动态显示和交互式绘图(和Matlab功能类似)。...
  • matlab GUI添加背景图片

    万次阅读 多人点赞 2018-09-13 22:00:24
    为GUI添加一个背景图片,不仅可以让我们的界面变得漂亮大气档次,而且软件对与用户的交互更加友好。用C或者C++写过软件界面的人都知道,这件事情可以轻而易举的办到,那么问题来了,怎么为matlab的GUI添加一个背景...
  • 0| 前言数据可视化(data visualization)技术指的是运用计算机图形学和图像处理技术,将数据转换为图形或图像屏幕显示出来,并进行交互处理的技术。它涉及计算机图形学、图像处理、计算机辅助设计、计算机视觉及...
  • 现在我国尤其是北方城市,工业发达,废弃排放严重,这使得雾霾越来越...为了让界面更加美观,可以增加GUI人机交互界面,GUI显示去雾前后对比,方法选择按钮,提示信息框,以及评价参数如灰度直方,峰值信噪比P
  • 现在我国尤其是北方城市,工业发达,废弃排放严重,这使得雾霾...为了让界面更加美观,可以增加GUI人机交互界面,GUI显示去雾前后对比,方法选择按钮,提示信息框,以及评价参数如灰度直方,峰值信噪比PSNR等。
  • 图形用户界面 (Graphical User Interface,简称 GUI),是有别于纯代码执行,GUI能够繁琐的代码浓缩到一块简洁的界面,用户只需要输输参数、点点鼠标就能得到自己想要的结果,具有极强的交互性和友好性...
  • 在上中,语句1和2是等效的。...),matlab会以交互式来执行程序,所以每执行一步,都会输出,而类似与语句2,我们有了分号,matlab会执行这个语句,并且会继续执行,除非我们打印结果,否则不会显示到屏幕
  • 0| 前言数据可视化(data visualization)技术指的是运用计算机图形学和图像处理技术,将数据转换为图形或图像屏幕显示出来,并进行交互处理的技术。它涉及计算机图形学、图像处理、计算机辅助设计、计算机视觉及...
  • 实例1:使用主动轮廓(snake)将图像分割成前景和背景 ...使用主动轮廓算法,您可以图像指定初始曲线,然后使用activecontour函数使曲线向对象边界演化。 activecontour函数 BW= activecontour(A,mask,n...
  • 本机环境:matlab2014a(64bit...在matlab中输入命令:mex -setup,出现以下内容,使用鼠标单击,为C++语言选择编译器 第三步:编译 编译有图形交互的方式和输入命令的方式,我们这里采用后者,直接输入如下命令:
  • 图像配准多采用基于图像特征点的方法,这种方法易于用计算机处理并且容易实现人机交互,其重点在于如何提取图像的有效特征点。对图像拼接技术的目的、意义、国内外研究现状、发展方向以及本课题研究的目的和意义...
  • 以前经常用Matlab的鼠标交互功能实现一些小应用,使用起来很...这里使用drawpolyline实现了一个图像上交互计算夹角的例子,效果如下:使用方法:加载一张图像;图像上点3个点,画两条线;拖动点以调整直线,...
  • 图像配准多采用基于图像特征点的方法,这种方法易于用计算机处理并且容易实现人机交互,其重点在于如何提取图像的有效特征点。对图像拼接技术的目的、意义、国内外研究现状、发展方向以及本课题研究的目的和意义...
  • 徐海蛟博士 Teaching.1984年,莫勒尔和班格尔特合作成立了MathWorks公司,正式把...MATLAB是一种用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。除了矩阵运算、绘制函数/数据...
  • 做一个图像语义分割的项目,得处理大量采集的图片数据,很多图片背景和前景难以区分,只有人工交互标注,所以编写了一个简单的交互标注软件。只能标注两类,可以撤销10次,可以设置工作半径和颜色阈值,用了简单的...
  • 篇 方法演绎方法名称以及数学模型中的应用场合,特色内容常规方法:主要是数据处理和绘制图形,建议预测方面,其中数据处理包括数据清预处理,数值计算,数值拟合等内容。这种方法的特色是:MATLAB交互,薄膜...
  • Matlab作图

    2020-11-06 18:56:23
    文章目录matlab线性 标记 颜色曲线对数坐标三维图像空间曲线空间曲面图形处理图形加格栅、图例和标注图形交互标注定制坐标多窗口分割窗口图形缩放改变观察视角 matlab线性 标记 颜色 曲线 [0,2*pi]用红线...
  • matlab开发-ImageMorphology

    2019-08-25 17:30:42
    matlab开发-ImageMorphology。图像进行形态学操作的交互环境。
  • Arduino板获取输入并发送输出 MATLAB® 支持包的Arduino® 硬件,您可以使用...您还可以创建并分发兼容的独立MATLAB应用程序,这些应用程序可以系统运行MATLAB程序,以通过Serial接口连接Ardui...
  • 篇介绍数学建模中常规方法的matlab实现,包括matlab交互、数据建模、程序绘图、灰色预测、规划模型等方法;还介绍了各种高级方法的matlab实现,包括遗传算法、粒子群算法、模拟退火算法、人工神经网络、小...
  • matlab开发-ROI

    2019-08-24 04:06:17
    matlab开发-ROI。这些M文件允许您交互处理并图像ROI倍增。

空空如也

空空如也

1 2 3 4 5 ... 15
收藏数 292
精华内容 116
关键字:

matlab在图上交互

matlab 订阅