Matlab中多个文件的读取操作:使用GUI同时打开和读取多个影像

欢迎学习交流!
邮箱: z…@1…6.com
网站: https://zephyrhours.github.io/

前言

相信很多刚刚从事科学研究的朋友们都会遇到这个问题,在我们处理多个影像文件时,总是使用load或者imread函数来读取mat或tif等格式的影像,一个一个的导入使得程序显得笨拙,在更换实验数据后,总是需要对程序内部一些参数进行更改才能使用。

下面笔者分享一个智能化的GUI影像文件读取程序,希望能够帮助各位搞科研的朋友们!

1. fgetl、fgets、fread函数

  • fgerl
    功能: 从文件中读取一行数据,并去掉行末的换行符
  • fgets
    功能: 从文件中读取行,保留换行符 (换行符和回车符)
  • fread
    功能: 以二进制形式,从文件读出数据
    在这里插入图片描述

2. 使用GUI打开多个文件

matlab代码的编写风格和语言很简单,其实实现这个功能只需要一个命令即可,具体如下:

[filename, pathname, filterindex] = uigetfile( '*.*','Pick the file','MultiSelect', 'on');

运行效果如下:
在这里插入图片描述

3. GUI打开多个影像文件并进行读取操作

下面是利用上面的GUI程序读取多个影像文件,并对其进行后续操作的一个实例,可用用于参考,具体代码如下


clc;clear;close all;
[filename, pathname, filterindex] = uigetfile( '*.*','Pick the file','MultiSelect', 'on');
sz=size(filename);
for i=1:sz(2)
    I=imread(strcat(pathname,filename{i})); % 读取文件
    img=imresize(I,[64,64]); % 影像文件重采样
    data(i,:)=img;           % 将每个影像保存于矩阵data的每行
end

4. 文本的写入操作

下面给出文本的写入操作,程序中已经给出了注释,所以具体不在赘述。其中的 output_ZB 为需要存入文档的变量。

name_str='C:\Users\hzf\Desktop\ceshi.txt'
fid=fopen(name_str,'a+','n','UTF-8') ;%若返回的fid值大于0,则表示打开成功
for i=1:rows
    fprintf(fid,'%s','filename');%文件名
    fprintf(fid,'\n');
    for j=1:4
        if (j==4)%判断是否为最后一个坐标
            fprintf(fid,'%.4f',output_ZB(i,j)); % 写入数据并添加字符串
            fprintf(fid,'\n'); %换行
        else
            fprintf(fid,'%.4f',output_ZB(i,j)); % 写入数据并加入空格隔开
            fprintf(fid,'%s',' '); % 空格
        end
    end
end
fclose(fid);

5. 利用textread函数批量读取txt中的文本

  • 基本格式:
    [A,B,C,…] = textread(filename,format)
    [A,B,C,…] = textread(filename,format,N)

  • 具体代码如下:

ReadList1 =textread('buck_list.txt','%s','delimiter','\n');%载入正样本列表
  • buck_list.txt 为文本文件
  • delimiter 为格式,意思是指出分隔符,读数据的时候会自动跳过分隔符
  • ReadList1 为读取的文件内容

具体操作结果如下:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

独不懂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值