Matlab图片读入和导出
Matlab图片读入和导出
文件读入
面对大量的实验文件,一次性读取多个文件运行程序显然比挨个运行省心的多。Matlab读取的文件常见的有 .txt
类型、.bmp、.jpg等图像类型,Matlab连续读取多个文件的格式大体上是一致的,只是有些许的不同。
一、多个.txt 文件连续读取(2 ways)
- 方法1:把文件的文件名按一定的规律命名
例如:filename1.txt,filename2.txt,…,fielname100.txt,在读取的时候使用循环:
1 | for i = 1:100 |
- 方法2:统一放在一个文件夹下
不需要统一进行重命名了:
1 | A = dir(fullfile('d\datafile','*.txt')); |
这个语句是把存放数据文件的目录d:/datafile下的所有txt文件列出来,并把这些文件名的信息存放到一个变量A中,A是一个结构体变量,只要对A进行循环就可以读取到所有文件的数据了。
二、图像文件连续读取(3 ways)
以 .bmp 格式为例
- 方法1:把文件的文件名按一定的规律命名
例如:filename1.bmp,filename2.bmp,…,fielname100.bmp,在读取的时候使用循环:
1 | for i = 1:100 |
- 方法2:将图像统一放在一个文件夹下
不需要统一进行重命名了,利用uigetdir函数得到你所处理图像的路径,然后对此路径下的所有图像进行处理,举例如下:处理bmp文件
如果确定文件夹目录,
1 | A = dir(fullfile('d\picfile','*.bmp')); |
这个语句是把存放图像文件的目录d:/picfile下的所有.bmp文件列出来,并把这些文件名的信息存放到一个变量A中,A是一个结构体变量,只要对A进行循环就可以读取到所有的图片了。
- 方法3:如果未指定文件夹目录
1 | srcDir=uigetdir('Choose source |
文件导出
保存图片
保存整个图窗
saveas和print函数保存的图像都带白边,不是仅保存图像 带白边
以时间命名文件的方法
1 | % 设置文件名 |
保存图片
1 | % 转换成imwrite函数支持的格式 |
gca得到的就是figure的返回值,应该是吧!
导出到指定文件夹
imwrite 的定义是:在当前文件夹中创建新文件。
**方案一:**失败
那么可以先设置指定文件夹作为当前文件夹,然后再执行imwirte函数
执行完了在将当前文件夹恢复到工作文件夹
cd('e:\...')
切换了当前文件夹,当前文件就无法继续执行了
方法二:
在MATLAB下将处理得到的图片保存到某个指定文件夹
命令:
1 | imwrite(pic(需要保存的图片名称),strcat(‘文件路径’),‘jpg’) |
此处,我想要保存的图片变量是“I”,保存得到的图片名称是1.jpg。
成功版本
1 | function [] = writeOutImage(picProcessed) |