精华内容
下载资源
问答
  • 由于手中的数据是mat文件(我的数据是一组乳腺切片组成的三维数据),想要查看某一张切片的图片,又不想使用软件打开,因此需要利用脚本进行转换。 A = sio.loadmat(r'41582_L_MLO') B = A['imageCroped'] 首先读取...

    由于手中的数据是mat文件(我的数据是一组乳腺切片组成的三维数据),想要查看某一张切片的图片,又不想使用软件打开,因此需要利用脚本进行转换。

    A = sio.loadmat(r'41582_L_MLO')
    B = A['imageCroped']
    

    首先读取我的mat文件,保存到A中,再读取里面的三维数组,保存到B中。
    '41582_L_MLO’为我的文件名,'imageCroped’为文件中的三维数组的名字。

    print(type(B))
    print('三维数组: \n%s' % B)
    print('B的维度:',B.shape)
    

    B的类型
    查看此时B的类型。
    B的数组
    查看B的具体数组。
    B的维度
    查看B的维度,1860 * 402 * 33,即33张1860 * 402大小的切片。

    C = B[:,:,15]
    

    这步操作主要是取出第16个二维数组,即第16张切片。
    C的维度和类型
    上图为C矩阵的具体信息。

    pyplot.imshow(C)
    pyplot.show()
    

    通过上述两行代码,即可显示第16张切片的图片。如下图:
    图片显示结果
    完整代码如下:

    import scipy.io as sio
    import matplotlib.pyplot as pyplot
    
    A = sio.loadmat(r'41582_L_MLO')
    B = A['imageCroped']
    
    C = B[:,:,15]
    print(type(B))
    print('三维数组: \n%s' % B)
    print('B的维度:',B.shape)
    print('C矩阵:\n%s'% C)
    print('C的维度:',C.shape)
    print(type(C))
    pyplot.imshow(C)
    pyplot.show()
    
    
    展开全文
  • 最近在做图像分割需要制作样本,Matlab自带的ImageLabeler工具就能方便地进行样本的标记,不过它只能将输出的样本数据保存为mat文件,为了方便在其他地方也能轻松使用这些样本,需要把mat文件转化为图片进行保存。...

    最近在做图像分割需要制作样本,Matlab自带的ImageLabeler工具就能方便地进行样本的标记,不过它只能将输出的样本数据保存为mat文件,为了方便在其他地方也能轻松使用这些样本,需要把mat文件转化为图片进行保存。

    对于低版本的matlab,下面这个博客已经给出了很详细的说明https://blog.csdn.net/tsyccnh/article/details/50812632,然而我使用的是Matlab2018a中的ImageLabeler工具,与之前低版本的工具相比做了一定的改动,查了一些资料后终于操作成功,下面就详细讲述下心得。

    1.制作样本并输出为mat文件

    在Matlab的APP工具中打开Image Labeler

    3333c4452fb9f25614fd43898923f401.png

    点击New Session新建一个会话

    7bdee8b86b9516389c3c7b099a6b13a6.png

    点击load下的Add Images from folder添加要制作样本的图像

    2ed53e8923d3d976f027cad5ab6ed9a7.png

    加载图像后,点击Define New ROI Label新建一个类别可进行样本标记

    7d43a75437240cfbfe877c78b354d24f.png

    填写该类别的名称,选择Rectangle则以矩形框的方式制作训练样本

    2d433c392396c3d2373116920b4c19e9.png

    制作样本完成后,点击Save下的Session as保存当前会话,可以使用Load Session打开保存的会话进行继续编辑。

    另外还需要点击Export Labels把制作的样本保存为mat文件

    68ac713f526964541a44bda52826ef87.png

    2.将mat文件转换为图片保存

    在试验中我共选取了两个类别的样本,名称为building何notbuilding,输出的label_2_classes_train.mat文件保存在当前目录下,接下来就具体分析如何使用mat文件。

    首先加载mat文件:

    load('label_2_classes_train.mat')

    可以看到显示的变量名称为gTruth,类型为groundTruth对象。通过gTruth.LabelData返回存放样本数据的table。

    gTruth.LabelData

    output:

    1×2 table

    building notbuilding

    _____________ _____________

    [28×4 double] [30×4 double]

    这个table的大小为1x2,通过它的Properties操作可以获取table的一些属性。例如要获取table中变量的名称:

    gTruth.LabelData.Properties.VariableNames

    output:

    1×2 cell 数组

    {‘building’} {‘notbuilding’}

    我们要获取table中的元素,可以用{}进行索引操作:

    gTruth.LabelData{1,1}

    output:

    1×1 cell 数组

    {28×4 double}

    返回的是gTruth.LabelData中的第1行第1列的元素,类型为cell数组,这个cell数组中的元素为一个28x4的double型数组。我们要获取这个cell中的元素,可以用{}进行索引操作。

    gTruth.LabelData{1,1}{1,1}

    output:

    ans =

    353 25 14 12

    560 16 12 9

    返回的数组中的每一行表示一个矩阵框选样本的位置(xmin,ymin,width,height),这个与Imcrop(img,rect)中的rect中的格式一致。

    获取一个样本的位置操作为:

    gTruth.LabelData{1,1}{1,1}(1,:)

    output:

    ans =

    353 25 14 12

    这样一来我们就成功的获取了所需要的数据。

    下面是将mat文件转化为图片的函数:

    function SaveImagesFromImageLabeler(img_path,mat_filepath,save_dir)

    %UNTITLED 将使用ImageLabeler标记的样本的mat文件转化为tiff格式的图片保存

    %parameters:

    %--img_path:

    %meaning:用来制作样本的图像的路径

    %type:string

    %--mat_filepath:

    %meaning:使用Export Labels输出的mat文件的路径,如‘1.mat’

    %type:string

    %--save_dir:

    %meaning:保存图像的文件夹

    %type:string

    %%

    img=imread(img_path);

    load(mat_filepath);

    table=gTruth.LabelData;

    %获取table的变量名,即类别名称,返回一个cell

    class_name=table.Properties.VariableNames;

    %判断存放图像的文件夹是否存在,不存在则创建

    n_class=size(class_name,2);

    for i=1:n_class

    savepath=fullfile(save_dir,class_name{1,i});

    disp(savepath);

    if exist(savepath,'dir')==0

    mkdir(savepath);

    end

    end

    %遍历table中的每一类别的cell

    for i=1:n_class

    %获得每一类中的样本图片数目

    class_array=table{1,i}{1,1};

    num_img=size(class_array,1);

    %遍历每一类的所有图片

    for j=1:num_img

    img_sample=imcrop(img,class_array(j,:));

    img_sample_savepath=fullfile(save_dir,class_name{1,i},[num2str(j),'.tiff']);

    disp(img_sample_savepath);

    imwrite(img_sample,img_sample_savepath);

    end

    end

    end

    主函数为:

    %保存训练样本和测试样本图片

    %%

    %保存训练样本图片

    train_img_path='1.tif';

    train_mat_filepath='label_2_classes_train.mat';

    train_save_dir='data\train';

    SaveImagesFromImageLabeler(train_img_path,train_mat_filepath,train_save_dir);

    disp('保存训练样本图片结束');

    展开全文
  • 批量的图片保存为mat文件 -- MATLAB

    千次阅读 2018-11-03 12:34:50
    matlab实现批量图片mat转换,对应大量数据集图片处理异常重要 clc; clear all; num = 1000; %图片数量 for i = 1 : num  IMAGE = imread(sprintf('G:\\TEST\\%.jpg', i));  eval(sprintf('IMAGE%d = IMAGE;', ...

    matlab实现批量图片向mat转换,对应大量数据集图片处理异常重要

    clc; clear all;
    num = 1000;          %图片数量
    for i = 1 : num
       IMAGE = imread(sprintf('G:\\TEST\\%.jpg', i));
       eval(sprintf('IMAGE%d = IMAGE;', i));
    end
    str = 'save data.mat';
    for i = 1 : num
       str = sprintf('%s IMAGE%d ', str, i);
    end
    eval(str);%相当于是将str的内容当做语句来执行
    展开全文
  • 最近在做图像分割需要制作样本,Matlab自带的ImageLabeler工具就能方便地进行样本的标记,不过它只能将输出的样本数据保存为mat文件,为了方便在其他地方也能轻松使用这些样本,需要把mat文件转化为图片进行保存。...

    最近在做图像分割需要制作样本,Matlab自带的ImageLabeler工具就能方便地进行样本的标记,不过它只能将输出的样本数据保存为mat文件,为了方便在其他地方也能轻松使用这些样本,需要把mat文件转化为图片进行保存。
    对于低版本的matlab,下面这个博客已经给出了很详细的说明https://blog.csdn.net/tsyccnh/article/details/50812632,然而我使用的是Matlab2018a中的ImageLabeler工具,与之前低版本的工具相比做了一定的改动,查了一些资料后终于操作成功,下面就详细讲述下心得。

    1.制作样本并输出为mat文件

    在Matlab的APP工具中打开Image Labeler
    在这里插入图片描述
    点击New Session新建一个会话
    在这里插入图片描述
    点击load下的Add Images from folder添加要制作样本的图像
    在这里插入图片描述
    加载图像后,点击Define New ROI Label新建一个类别可进行样本标记
    在这里插入图片描述
    填写该类别的名称,选择Rectangle则以矩形框的方式制作训练样本
    在这里插入图片描述
    制作样本完成后,点击Save下的Session as保存当前会话,可以使用Load Session打开保存的会话进行继续编辑。
    另外还需要点击Export Labels把制作的样本保存为mat文件
    在这里插入图片描述

    2.将mat文件转换为图片保存

    在试验中我共选取了两个类别的样本,名称为building何notbuilding,输出的label_2_classes_train.mat文件保存在当前目录下,接下来就具体分析如何使用mat文件。
    首先加载mat文件:

    load('label_2_classes_train.mat')
    

    可以看到显示的变量名称为gTruth,类型为groundTruth对象。通过gTruth.LabelData返回存放样本数据的table。

    gTruth.LabelData
    

    output:

    1×2 table
    building notbuilding
    _____________ _____________
    [28×4 double] [30×4 double]

    这个table的大小为1x2,通过它的Properties操作可以获取table的一些属性。例如要获取table中变量的名称:

    gTruth.LabelData.Properties.VariableNames
    

    output:

    1×2 cell 数组
    {‘building’} {‘notbuilding’}

    我们要获取table中的元素,可以用{}进行索引操作:

    gTruth.LabelData{1,1}
    

    output:

    1×1 cell 数组
    {28×4 double}

    返回的是gTruth.LabelData中的第1行第1列的元素,类型为cell数组,这个cell数组中的元素为一个28x4的double型数组。我们要获取这个cell中的元素,可以用{}进行索引操作。

    gTruth.LabelData{1,1}{1,1}
    

    output:

    ans =
    353 25 14 12
    560 16 12 9

    返回的数组中的每一行表示一个矩阵框选样本的位置(xmin,ymin,width,height),这个与Imcrop(img,rect)中的rect中的格式一致。
    获取一个样本的位置操作为:

    gTruth.LabelData{1,1}{1,1}(1,:)
    

    output:

    ans =
    353 25 14 12

    这样一来我们就成功的获取了所需要的数据。

    下面是将mat文件转化为图片的函数:

    function SaveImagesFromImageLabeler(img_path,mat_filepath,save_dir)
    %UNTITLED 将使用ImageLabeler标记的样本的mat文件转化为tiff格式的图片保存
    %parameters:
    %--img_path:
    %meaning:用来制作样本的图像的路径
    %type:string
    %--mat_filepath:
    %meaning:使用Export Labels输出的mat文件的路径,如‘1.mat’
    %type:string
    %--save_dir:
    %meaning:保存图像的文件夹
    %type:string
    %%
    img=imread(img_path);
    load(mat_filepath);
    
    table=gTruth.LabelData;
    %获取table的变量名,即类别名称,返回一个cell
    class_name=table.Properties.VariableNames;
    %判断存放图像的文件夹是否存在,不存在则创建
    n_class=size(class_name,2);
    for i=1:n_class
        savepath=fullfile(save_dir,class_name{1,i});
        disp(savepath);
        if exist(savepath,'dir')==0
            mkdir(savepath);
        end
    end
    %遍历table中的每一类别的cell
    for i=1:n_class
        %获得每一类中的样本图片数目
        class_array=table{1,i}{1,1};
        num_img=size(class_array,1);
        %遍历每一类的所有图片
        for j=1:num_img
           img_sample=imcrop(img,class_array(j,:));
           img_sample_savepath=fullfile(save_dir,class_name{1,i},[num2str(j),'.tiff']);
           disp(img_sample_savepath);
           imwrite(img_sample,img_sample_savepath);
        end
    end
    
    end
    

    主函数为:

    %保存训练样本和测试样本图片
    
    %%
    %保存训练样本图片
    train_img_path='1.tif';
    train_mat_filepath='label_2_classes_train.mat';
    train_save_dir='data\train';
    
    SaveImagesFromImageLabeler(train_img_path,train_mat_filepath,train_save_dir);
    disp('保存训练样本图片结束');
    
    展开全文
  • MATLAB将批量的图片保存为mat文件

    千次阅读 2019-03-15 10:16:02
    % %读入图片保存为mat文件 clear all; close all; clc; %将图像的文件夹路径读入 %假设flowers文件夹下有许多flowers1.png,flowers2.png等等 namelist = dir(fullfile('F:\MATLAB2017b\AMOutputResults\flowers...
  • 目的:将100张图片保存为.mat文件,每一行是一张图片(一个cell),点进去是346*286的矩阵。 clc; clear all; filepath = 'F:\test_png\'; %图片路径可以根据自己需要修改; ext='*.png'; dis=dir([filepath ext]) ...
  • a=load('Pose29_64x64.mat'); %文件名 for i = 1:1 :3332 %数据循环 b = a.fea(i,:); %一行一行的读取 d = b/255;... %图片大小64*64 %imshow(D) sc=strcat('C:\Users\801\Desktop\555\',sp
  • matlab图片批量预处理并保存为mat数据和jpg文件。~~预处理中的代码可以替换成其他方式,这里只是做个引导。批处理的文件夹以及图片的格式请根据实际情况自行调整。
  • 变量的载入载入变量的方式一般load('文件名')如果载入的内容以matlab通用形式保存的数据即xxx.mat,就非常方便,变量的格式和名称都和保存时一样。但是这种方法对于其他格式如txt、excel文件并不友好,因为这些...
  • Matlab批量将.nii文件保存为.mat文件

    千次阅读 2019-06-02 11:32:33
    1. matlab批量修改文件名 比如文件夹里有很多 .nii 后缀的文件,需要统一修改成 clc; clear all; file = dir('*.nii'); 2. matlab批量读取文件夹内所有图片
  • 首先我们谈谈MarkDown编辑器,我感觉些倒是挺方便的,因为用惯了LaTeX,对于MarkDown还是比较容易上手的,但是我发现,MarkDown中有这样几个问题一直没能找到具体的解决方法:图片大小的问题。在LaTeX中我们可以调整...
  • 在Matlab中数据集通常保存为.mat格式。那么如果我们想要在Python中加载.mat数据应该怎么办呢?所以今天就给大家分享一个使用python加载.mat数据的方法。我将使用Stanford Cars Dataset数据集作为例子为大家演示使用...
  • 把数组保存为图片 读取mat文件获取各层的参数 numpy.mean()先后在横轴纵轴取均值(面向的是三维列表) reshape(-1)表示把多维数组转换为1维数组 scipy转换图片大小 plt的imshow函数画出图片...
  • 多幅图像存储为mat文件

    千次阅读 2018-03-30 14:33:46
    load 打开mat文件save 关闭\保存mat文件load('filename','X','Y','Z') 加载filename文件中的X Y Z变量到工作区间中save('filename','-struct','s') 保存结构体s 到filename中将某一路径下的所有图片存储到一个三维...
  • 1.读取图片 使用imread函数,以矩阵的形式返回图片的数据  I = imread('1.jpg'); 红字部分更改为自己的图片路径   ...2.缩放图片 ...3.保存为mat格式 使用save函数保存数据,第一个参数为文件路...
  • 在使用matlab读取多波段tif格式图像时,常常会遇到一个问题,那...若一幅tif格式的图片类型uint16,则须先将其转换uint8格式才能使用imshow显示【注意:imshow只能显示3个波段的图像,更高维度无法显示】。常用...
  • opencv可读入.yml文件格式探索 opencv中 利用FileStorage 类来进行.yml文件的储存与读取 这里可以参见网上诸多博客 OpenCV FileStorage类读写XML/YML文件 另外如何访问三通道图里...如以下代码保存Mat类到.yml文件
  • 将.MAT体素格式生成二维视角图片---- 1.1 文件目录格式说明---- 1.2 如何将三维MAT文件投影为图片格式呢?- 2. 你想要的代码地址-授人以鱼不如授人以渔- 写文章的初衷是我在处理ModelNet的.OFF文件时遇到太多困难,...
  • static void Main(string[] args) { VideoCapture ReadVideo = new VideoCapture(@"I:\OpenCvSharp学习\cylindrical.avi"); int i = 0; while (ReadVideo.IsOpened()) { Mat SaveImage .
  • 从网上下载的数据集可能是保存为.mat文件的,保存着很多图片 我们先来看一下本次实验所需要的.mat文件 首先我们先加载对应的模块,并用这个模块加载对应的.mat文件 from scipy.io import loadmat X = loadmat(r...
  • https://blog.csdn.net/guduruyu/article/details/41749107OpenCV3和OpenCV2大同小异,图片的读取,通过函数cv::imread()来实现的;显示通过函数cv::imshow...第一个参数为图片文件的相对路径或绝对路径(注意:路径...
  • 但是我们也在提交测试时,也会需要提交.mat文件。下面我们就将得到的测试图片保存在四维数组中,并生成.mat的字典格式。 import numpy as np import os.path import shutil from scipy.io.matlab.mio import ...
  • 是IplImage* 或cv::Mat类型的,这样读取的图片是像素值,转化char* 进行post上传后图片格式不符合File类型,所以怎样能把IplImage* 或cv::Mat类型的图片转化与HTTP-body对应的File类型(或者二进制数据)进行...
  • MATLAB中将图片数据存储.mat格式

    千次阅读 2017-02-15 20:05:48
    save 关闭\保存mat文件 load('filename','X','Y','Z') 加载filename文件中的X Y Z变量到工作区间中 save('filename','-struct','s') 保存结构体s 到filename中 将某一路径下的所有图片存储到一个三维
  • #include #include#include using namespace std;using namespace cv;int main(int argc, char* argv[]){const char* ...//从文件中读入图像Mat img = imread(imagename);ofstream outfile("rgb.txt");//如果...
  • 读取视频,按帧保存为图片C++思路主要步骤代码完整代码 思路 视频是由帧组成的,先读取视频,设置初始帧和结束帧,根据所需的帧数量,从视频对象中读取帧,然后写入指定目录 主要步骤代码 //视频对象capture读取文件...
  • #include #include#include using namespace std;using namespace cv;int main(int argc, char* argv[]){const char* ...//从文件中读入图像Mat img = imread(imagename);ofstream outfile("rgb.txt");//如果...

空空如也

空空如也

1 2 3 4 5
收藏数 81
精华内容 32
关键字:

mat文件保存为图片