精华内容
下载资源
问答
  • 基于matlab导入图像数据基于matlab导入图像数据基于matlab导入图像数据
  • 本程序可对论文/产品手册等资料中的各类曲线图片实现数据的提取与复原。不仅使用于包含单色单曲线的图片,亦可提取多色多曲线图片中任意曲线上的数据。 使用时,首先对图片坐标轴四点进行定位,随后按照提示进行操作...
  • matlab数据图像文件.fig中导出曲线,图像数据图像文件可以包含多个子图(subplot,subfigure);输入为图像文件名称,输出分为两级,第一级为子图,第二级为子图中的曲线数据
  • 读取Raw格式的图像,调用格式im=imwriteRaw(path,height,width)
  • matlab 显示txt数据图片

    2017-10-26 13:57:30
    matlab 显示txt数据图片,读取txt文件中数据,按照m*n的方式显示图片
  • Matlab图像数据保存

    千次阅读 2018-06-17 16:29:19
    在下载完一些数据集的做训练的时候,发现了很多不规范的命名,因此,查询了一下图片存储以及改名的方法,学习完后,写下了本篇blog,希望大家喜欢。 读取图像 图像的读取 I=imread(‘pout.tif’); imread是...

    目录:

    前言

    在下载完一些数据集的做训练的时候,发现了很多不规范的命名,因此,查询了一下图片存储以及改名的方法,学习完后,写下了本篇blog,希望大家喜欢。

    读取图像

        图像的读取    
        I=imread(‘pout.tif’);

    imread是读取图像的函数。pout.tif是matlab内置的图像,不管在什么程序内都可以直接读取。那么,如果我们要读取其他位置的函数怎么做呢?这里我们来说几种常见的情形。

    %注意
    (1)读取1.jpg
    I=imread(‘1.jpg’);
    (2)读取2.jpg
    I=imread(‘image\2.jpg’);%相对路径的读取
    (3)读取D:\1023\25\1.jpg
    I=imread(‘D:\1023\25\1.jpg’);%绝对路径的读取
    (4)读取D:\1023\2520个图像。
    for i=1:20
     I=imread([‘D:\1023\25\’,num2str(i),’.jpg’]);
    end

    注:第四种情况需要注意的是,里面添加了[ ],来保证这是一个整句。num2str(i)是将i由数字转换成字符形式。这样就能实现循环读取。一般来说,会将图像跟.m文件放在一起。当图像较多时,图像放入image文档中,读取方式将(2)和(4)结合起来。利用相对路径来读取,这样当程序和图像同时放在其他电脑上时,不会因为路径而产生问题。
    那么什么时候用figure呢?当程序中只显示一幅图像时,直接imshow就可以。然后当图像多的时候,就需要用到figuure;imshow(I1);figure;imshow(I2);figure;imshow(I3)
    如果想要在一张图片内,显示好几个图怎么办呢?title显示在图像的上方,起到提示的作用。

    I=imread('pout.tif');
    subplot(2,2,1);imshow(I);title('1');
    subplot(2,2,2);imshow(I);title('2');
    subplot(2,2,3);imshow(I);title('3');
    subplot(2,2,4);imshow(I);title('4');

    结果,如下:
    图片

    图像的存储

    1、图像的存储
    imwrite函数适合保存高质量的图像,保存结果很容易得到体现。
    imwrite(I,’pout1.jpg’);
    同样,imwrite也有相对路径和绝对路径的存储,以及连续的存储方法。同imread
    imwrite(I,’pout1.jpg’);
    imwrite(I,’image\pout1.jpg’);
    imwrite(I,’D:\image\pout1.jpg’);

    需要注明的是,存储所选择的文件夹,需要已经建立好。那么怎么去自动建立文件夹呢?

    需要用mkdir函数。
    mkdir(‘D:\image\1’)%绝对路径的建立。
    mkdir(‘image\1’);%相对路径文件夹的建立。创建之后,在Matlab文件夹内。

    读取都主要选择相对路径,以及循环读取。程序较为简单。

    clc;clear;closeall;
    I=imread('pout.tif');
    figure;
    subplot(221);imshow(I);title('1');
    subplot(222);imshow(I);title('2');
    subplot(223);imshow(I);title('3');
    subplot(224);imshow(I);title('4');
    whos;
    mkdir('image')
    imwrite(I,'image\pout.bmp');

    2、直接另存为
    在figure中使用菜单file——>saveas——>选择保存形式(fig,eps,jpeg,gif,png,bmp等),这个的缺点是另存为的图像清晰度有很大的牺牲
    3、复制到剪贴板
    在figure中使用菜单edit——>copy figure——>此时图像就复制到剪贴板了,我们可以借助其他软件(比如:画画,word程序)保存为需要的图片
    4、saveas命令格式
    Matlab提供直接的saveas函数可以将指定figure中的图像或者simulink中的框图进行保存,相当于【文件】中的【另存为】

    % saveas(figure_handle,filename,fileformat)
    plot(1:10);
    saveas(gcf,‘myfig.jpg’)   
     (这种保存图像大小和源图像发生较大差别,因为没有对句柄进行特殊的设置。可以尝试
    set (gcf,'Position',[500,500,500,500], 'color','w') )

    5、print函数
    print函数原本不是用来进行图像保存了,而是操作打印机的,但是这里我们可以借用下

    % print(figure_handle,fileformat,filename)
    x=-pi:2*pi/300:pi; 
    y=sin(x);
    plot(x,y);
    %Matlab根据文件扩展名,自动保存为相应格式图片,另外路径可以是绝对也可以是相对
    print(gcf,'-dpng','abc.png')   %保存为png格式的图片到当前路径

    另外有网友向我反映,有时我们只有一个Matlab图像的fig文件,但没有该图像的相关坐标数据,那我们如何获取fig图像的数据呢,这个其实比较好办
    1、将那个fig文件保存到Matlab的搜索路径下,双击打开它
    2、在Matlab的command中输入如下内容
    h=get(gcf,’chidren’)
    data=get(h,{‘xdata’,’ydata’,’zdat a’})
    %此时图形中所有图像的三维数据x,y,z将会以结构体的形式保存到data变量中了 ,
    但这个方法有个限制,对于图像是不起作用的。

    展开全文
  • 找到了利用Matlab提取图片中的数据的源代码image2data,打包上传分享。 原简介: 从事科研或者工程的人员在文档撰写过程中,常需要将文献中的曲线与自己的结果对比,为获取原始数据,一种常用的办法是手动描点,...
  • 此种方法比较原始,适合于即时数据,原理是先画上一帧,接着保留原始图像,追加下一幀图像,此种方式比较繁琐,涉及画图细节,并且没有完整并连续的Line对象数据。此种方法需要注意的地方是,若想生成连续的线图,则...
  • Matlab数据增强

    2018-10-23 09:50:04
    matlab的一个小脚本,用于训练数据不够时数据增强使用
  • 基于经典贝叶斯理论的图像分割,含有MATLAB代码,有训练数据和实验数据,还有相应的PPT详解。 基于经典贝叶斯理论的图像分割,含有MATLAB代码,有训练数据和实验数据,还有相应的PPT详解。
  • 包括遥感图像读取、直方图、均衡化、直方图匹配、中值滤波、均值滤波、锐化、IHS与RGB转化、PCA融合等
  • 使用分类器对特征数据做分类器,需要使用正负样本,本程序旨在为正负样本数据做标签
  • KITTI数据集中雷达点云与图像数据融合的matlab源代码,用于自动驾驶环境感知算法研究,初学者适用
  • 一个从图片数据matlab小程序-从图像数据点的小程序.zip 自己用matlab编的一个从图片数据的小程序,有时候看论文看到数据的图,没法把数据取下来,得用手量,很不方面。 这个程序里面,需要自己定义三个...
  • Matlab学习手记】利用Matlab提取图片曲线数据

    万次阅读 多人点赞 2018-08-09 13:26:45
    目的:提取图片上的曲线数据点。比如,文献中的图表数据。 源代码 function varargout = DataExtract(varargin) % DATAEXTRACT MATLAB code for DataExtract.fig % DATAEXTRACT, by itself, creates a new DATA...

    2021-6-25 新增 github 源码链接,所以,自行下载,enjoy

    https://github.com/AFei19911012/MatlabSamples/tree/master/AppDesigner/SimpleImageToData

    目的:提取图片上的曲线数据点。比如,文献中的图表数据。

    2021-4-24 更新,代码已修改为 AppDesigner 设计,增加了自动提取功能:https://zhuanlan.zhihu.com/p/347520891

    •  源代码
    function varargout = DataExtract(varargin)
    % DATAEXTRACT MATLAB code for DataExtract.fig
    %      DATAEXTRACT, by itself, creates a new DATAEXTRACT or raises the existing
    %      singleton*.
    %
    %      H = DATAEXTRACT returns the handle to a new DATAEXTRACT or the handle to
    %      the existing singleton*.
    %
    %      DATAEXTRACT('CALLBACK',hObject,eventData,handles,...) calls the local
    %      function named CALLBACK in DATAEXTRACT.M with the given input arguments.
    %
    %      DATAEXTRACT('Property','Value',...) creates a new DATAEXTRACT or raises the
    %      existing singleton*.  Starting from the left, property value pairs are
    %      applied to the GUI before DataExtract_OpeningFcn gets called.  An
    %      unrecognized property name or invalid value makes property application
    %      stop.  All inputs are passed to DataExtract_OpeningFcn via varargin.
    %
    %      *See GUI Options on GUIDE's Tools menu.  Choose "GUI allows only one
    %      instance to run (singleton)".
    %
    % See also: GUIDE, GUIDATA, GUIHANDLES
    
    % Edit the above text to modify the response to help DataExtract
    
    % Last Modified by GUIDE v2.5 30-Aug-2017 09:01:43
    
    % Begin initialization code - DO NOT EDIT
    gui_Singleton = 1;
    gui_State = struct('gui_Name',       mfilename, ...
                       'gui_Singleton',  gui_Singleton, ...
                       'gui_OpeningFcn', @DataExtract_OpeningFcn, ...
                       'gui_OutputFcn',  @DataExtract_OutputFcn, ...
                       'gui_LayoutFcn',  [] , ...
                       'gui_Callback',   []);
    if nargin && ischar(varargin{1})
        gui_State.gui_Callback = str2func(varargin{1});
    end
    
    if nargout
        [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
    else
        gui_mainfcn(gui_State, varargin{:});
    end
    % End initialization code - DO NOT EDIT
    
    
    % --- Executes just before DataExtract is made visible.
    function DataExtract_OpeningFcn(hObject, eventdata, handles, varargin)
    % This function has no output args, see OutputFcn.
    % hObject    handle to figure
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
    % varargin   command line arguments to DataExtract (see VARARGIN)
    
    % Choose default command line output for DataExtract
    handles.output = hObject;
    
    % Update handles structure
    guidata(hObject, handles);
    
    % UIWAIT makes DataExtract wait for user response (see UIRESUME)
    % uiwait(handles.figure1);
    
    
    % --- Outputs from this function are returned to the command line.
    function varargout = DataExtract_OutputFcn(hObject, eventdata, handles) 
    % varargout  cell array for returning output args (see VARARGOUT);
    % hObject    handle to figure
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
    
    % Get default command line output from handles structure
    varargout{1} = handles.output;
    
    
    function pushbutton1_Callback(hObject, eventdata, handles)
    axes(handles.axes1)
    cla reset
    axis off
    set(handles.uitable1, 'data', []);
    
    set(handles.text5, 'string', 'Load a picture !!!');
    [FileName, PathName] = uigetfile({'*.bmp'}, 'Load a picture');
    if length(PathName) < 3
        msgbox('Failed to load a picture !!!');
        return;
    end
    FilePath = [PathName, FileName];
    Img = imread(FilePath);
    axes(handles.axes1);
    imshow(Img, 'Border', 'tight');
    
    set(handles.text5, 'string', 'Input the values in EditBoxs, press Enter to continue !!!');
    pause();
    
    set(handles.text5, 'string', 'Locate the start point !!!');
    currPt = ginput(1);
    x0 = currPt(1, 1);
    y0 = currPt(1, 2);
    line(x0, y0, 'marker', '.', 'color', 'r', 'markersize', 20);
    
    set(handles.text5, 'string', 'Locate the x-end point !!!');
    currPt = ginput(1);
    xend = currPt(1, 1);
    y = currPt(1, 2);
    line(xend, y, 'marker', '.', 'color', 'r', 'markersize', 20);
    line([x0, xend], [y0, y], 'color', 'r');
    
    set(handles.text5, 'string', 'Locate the y-end point !!!');
    currPt = ginput(1);
    x = currPt(1, 1);
    yend = currPt(1, 2);
    line(x, yend, 'marker', '.', 'color', 'r', 'markersize', 20);
    line([x0, x], [y0, yend], 'color', 'r');
    
    set(handles.text5, 'string', 'Now you can locate the point, press RightButton to locate the last point !!!');
    tableData = cell(0);
    con = 1;
    i = 1;
    xmin = str2double(get(handles.edit1, 'string'));
    xmax = str2double(get(handles.edit2, 'string'));
    ymin = str2double(get(handles.edit3, 'string'));
    ymax = str2double(get(handles.edit4, 'string'));
    scale1 = get(handles.radiobutton1, 'value');
    scale2 = get(handles.radiobutton3, 'value');
    while con == 1    
        [x, y, con] = ginput(1);
        line(x, y, 'marker', '.', 'color', 'r', 'markersize', 20);
        if scale1 == 1
            xx = (xmax - xmin)*(x - x0)/(xend - x0) + xmin;
        else
            xx = 10^((log10(xmax) - log10(xmin))*(x - x0)/(xend - x0) + log10(xmin));
        end
        if scale2 == 1
            yy = (ymax - ymin)*(y - y0)/(yend - y0) + ymin;
        else
            %yy = 10^((log10(ymax) - log10(ymin))*(log10(y) - log10(y0))/(log10(yend) - log10(y0)) + log10(ymin));
            yy = 10^((log10(ymax) - log10(ymin))*(y - y0)/(yend - y0) + log10(ymin));
        end
        tableData{i, 1} = i;
        tableData{i, 2} = xx;
        tableData{i, 3} = yy;
        set(handles.uitable1, 'data', tableData);
        i = i + 1;
    end
    
    function pushbutton2_Callback(hObject, eventdata, handles)
    [FileName, PathName] = uiputfile('*.txt', 'save file name');
    tableData = get(handles.uitable1, 'data');
    tableData = cell2mat(tableData);
    if ~isempty(tableData)
        dlmwrite([PathName, FileName], tableData(:, 2:end), 'delimiter', '\t', 'precision', '%8.4f');
    end
    
    function pushbutton3_Callback(hObject, eventdata, handles)
    close(gcf);
    
    function edit1_Callback(hObject, eventdata, handles)
    
    
    function edit1_CreateFcn(hObject, eventdata, handles)
    
    % Hint: edit controls usually have a white background on Windows.
    %       See ISPC and COMPUTER.
    if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
        set(hObject,'BackgroundColor','white');
    end
    
    
    function edit2_Callback(hObject, eventdata, handles)
    
    
    function edit2_CreateFcn(hObject, eventdata, handles)
    
    % Hint: edit controls usually have a white background on Windows.
    %       See ISPC and COMPUTER.
    if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
        set(hObject,'BackgroundColor','white');
    end
    
    
    function edit3_Callback(hObject, eventdata, handles)
    
    
    function edit3_CreateFcn(hObject, eventdata, handles)
    
    % Hint: edit controls usually have a white background on Windows.
    %       See ISPC and COMPUTER.
    if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
        set(hObject,'BackgroundColor','white');
    end
    
    
    function edit4_Callback(hObject, eventdata, handles)
    
    
    function edit4_CreateFcn(hObject, eventdata, handles)
    
    % Hint: edit controls usually have a white background on Windows.
    %       See ISPC and COMPUTER.
    if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
        set(hObject,'BackgroundColor','white');
    end
    
    • 源代码链接

    https://download.csdn.net/download/u012366767/10593012

    展开全文
  • 利用Matlab提取图片中的数据

    热门讨论 2011-10-29 22:25:38
    前段时间由于原始数据丢失,仅剩几十幅图片,本人尝试过手动描点,经历几个小时奋战,实在无法继续,索性转向matlab,借助其强大的数据处理能力,编写了两个GUI的小软件image2data、data_poly提取数据,如今大功告成...
  • 利用matlab软件对图像进行融合,其中有原始练习数据,自己写的,求通过,融合前后的效果对比,发现融合后的信息更加丰富
  • 通用Matlab数据查看器matVis是Matlab GUI,用于使用2D图像和1D轮廓显示任意尺寸的数据集。 matVis的主要功能包括 轻松输入数据:从工作空间或各种图像文件格式(包括Zeiss lsm文件和.mat文件)加载变量 轻松浏览任意...
  • Matlab制作数据集.pdf

    2019-06-26 17:15:45
    Matlab制作数据集,本文根据实际工作,详细介绍了matlab2017b制作图像数据集步骤,并附加了相应的matlab代码,文档中添加了图事例并加以说明
  • 利用MATLAB对一张图片中相同得物体进行计数。 ** MATLAB中已有函数可对二值化中的白色区域进行计数。 [labeled,numObjects]=bwlabel(‘图像名’,8); 运行后numObjects(即物体个数)的值会显示在右侧的工作区中。 ...
  • MATLAB中的数据类与图像类型 今天主要讲的是在MATLAB下,怎么实现数据类、图像类型之间的转换。首先我们需要先了解一下数据类和图像类型。 数据类: 在MATLAB中,关于数据类型一共包括了10项,分别包含了8项数值...

    MATLAB中的数据类与图像类型

    今天主要讲的是在MATLAB下,怎么实现数据类、图像类型之间的转换。首先我们需要先了解一下数据类和图像类型。

    数据类:

    在MATLAB中,关于数据类型一共包括了10项,分别包含了8项数值数据类、1项字符类、1项逻辑数据类,如下表所示。其中,所有的数值计算都可用double类来进行。

    在这里插入图片描述

    图像类型:

    在MATLAB工具箱中,它支持亮度、二值、索引、RGB图像四种图像类型。大多数单色图像的处理运算是通过二值图像和亮度图像来进行的,彩色图像当做索引图像或RGB图像来处理,由于彩色图像处理较为复杂,所以本次将不讨论RGB图像和索引图像,后期再做说明。

    1.亮度图像:

    一幅亮度图像是一个数据矩阵,其归一化的取值表示亮度。若亮度图像的像素都是uint8类或uint16类,则它们的整数值范围分别是[0,255]和[0,65535]。若图像数据是double类的,则像素取值就是浮点数。规定双精度型归一化亮度图像的取值范围是[0,1]。

    2.二值图像:

    二值图像是一种只有逻辑数字0和1的逻辑数组。在MATLAB中,因为并不把只含有0和1的数值数组认为是二值数组,所以需要使用logical函数把数值数组转化为二值数组。

    比方说:若A是一个由0和1构成的数值数组,则使用

    >> B = logical(A) %创建一个逻辑数组B

    还有一种情况就是A中除了0和1之外还有其他元素,则使用logical函数可以将所有非零的量变换为逻辑1,而将所有的数值0变换成逻辑0。

    使用函数islogical,测试一个数组是否是逻辑数组:

    >> islogical ( c ) %若c是逻辑数组,函数返回1,否则返回0.

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QxacPjem-1573127006030)(D:\JANE\陈红\graduate student-文献\有道云笔记\qqB84DDC3FDD641F01D5F1FE1F13BFA59A\98fdc0be1ba2465b8bd6819353ea5ca0\clipboard.png)]

    数据类与图像类型间的转化

    数据类间的转化

    >> B = data_class_name(A) %data_class_name可以为表1‘数据类’中的任何一项。

    比方:A是一个uint8类的数组,则命令:

    >>B = double(A)

    将产生一个双精度数组B。

    其中需要注意的是:如果将一个精度范围大的类转换为精度范围小的类,比如将double类转换为uint8类,若double类的数组在区间[0,255]之外存在其他的值,则会自动将大于255的值转换为255,小于0的值转换为0。所以一般精度范围大的数组转换为精度范围小的数组,需要将原来的数组进行一定的缩放,使其取值尽量在精度小的范围内。

    图像类和类型间的转换

    im2uint8函数:可以检测出输入的数据类,并进行所有必要的缩放,以便使工具箱能将这些数据识别为有效的图像数据。

    比如,一个double类2*2的图像f,它可以是中间计算的结果:

    执行转换:

    >> g = im2uint8(f)

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0dF7g1T5-1573127006031)(D:\JANE\陈红\graduate student-文献\有道云笔记\qqB84DDC3FDD641F01D5F1FE1F13BFA59A\905c7f105401401989d2ab80aed64e0c\clipboard.png)]

    im2uint8函数:可以将所有小于0的值设置为0,将输入中所有大于1的值设置为255,再将所有其他值乘以255,并将得到的结果四舍五入得到最接近的整数,从而完成转换。
    在这里插入图片描述
    注:彩色图像的转化这里不做讨论,后期再做说明。

    mat2gray函数:将double类的任意数组转换成取值范围为[0,1]的归一化double类数组

    >> g = mat2gray(f) %将f转换为[0,1]之间的double类的数组,生成g

    >> gb = im2bw(g,TV) %将g数组使用阈值TV将其转换为二值图像,生成gb

    **islogical函数:**将一个逻辑数组的事实存储为一个变量。

    >> gbv = islogical(gb)

    **im2double函数:**将一个逻辑数组转换为一个值为0和1的double类数值数组。

    >> gbd = im2double(gb)

    注:若gb是一个uint8类的数值数组,对其使用im2double结果与其是一个逻辑数组得到的结果是不一致的。
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TfVfaULs-1573127006031)(D:\JANE\陈红\graduate student-文献\有道云笔记\qqB84DDC3FDD641F01D5F1FE1F13BFA59A\2aa27298d5454721951fc594aa6c6dc7\clipboard.png)]

    注:MATLAB支持嵌套语句,上述的所有操作可写成:

    >> gbd = im2double(im2bw(mat2gray(F),0.5))

    下期将实现数组的索引功能,以及介绍怎么实现一些标准数组。

    :MATLAB支持嵌套语句,上述的所有操作可写成:

    >> gbd = im2double(im2bw(mat2gray(F),0.5))

    下期将介绍怎么实现数组的索引功能,以及怎么实现一些标准数组。

    后期将持续更新,你的关注就是我更新的动力哦
    在这里插入图片描述在这里插入图片描述

    展开全文
  • KITTI数据集中雷达点云与图像数据融合的matlab源代码,用于自动驾驶环境感知算法研究
  • MNIST是在机器学习领域中的一个经典问题。该问题解决的是把28x28像素的灰度手写数字图片识别为相应的数字,其中数字的范围从0到9.本资源提供了minist数据集及matlab读取代码
  • 该程序可实现matlab GUI 串口数据采集,并将采集到的数据进行绘图
  • 在彩色图像中隐藏数据和加密 接触 josemebin@gmail.com
  • 该程序在MATLAB端,可以将CCS导出的整形数据转换为MATLAB端的浮点数据
  • matlab读取raw格式图像

    2018-09-15 12:39:06
    读取Raw格式的图像,调用格式im=imread(path,height,width)
  • 背景 在做deeplearning过程中,使用caffe的框架,一般使用...matlab和python间的数据传输一般是基于matlab的文件格式.mat,python中numpy和scipy提供了一些函数,可以很好的对.mat文件的数据进行读写和处理。 在这里
  • MATLAB图像加密

    2019-11-11 16:59:59
    matlab实现图像加密,图像的本质就是矩阵,通过改变矩阵进行图像加密。密码可长可短,看自己选择。最后实现图像加密
  • 这可用于获取地表温度卫星图像数据数组集,特别是对于hdf5格式的图像。 它还有助于确定 hdf5 图像数据中特定位置的地表温度。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 62,346
精华内容 24,938
关键字:

matlab查看图像数据

matlab 订阅