matlab中imwrite批量保存
时间: 2023-04-26 16:03:42 浏览: 853
在MATLAB中,可以使用imwrite函数批量保存图像。具体步骤如下:
1. 将要保存的图像存储在一个cell数组中,例如:
img_cell = {img1, img2, img3, ...};
2. 使用循环遍历每个图像,并使用imwrite函数保存:
for i = 1:length(img_cell)
imwrite(img_cell{i}, ['img_', num2str(i), '.jpg']);
end
其中,['img_', num2str(i), '.jpg']是保存的文件名,可以根据需要自行修改。
相关问题
matlab的imwrite函数
### Matlab `imwrite` 函数详解
#### 语法结构
`imwrite` 是用于将图像数据写入文件中的函数。基本调用形式如下:
```matlab
imwrite(I, filename);
```
其中,`I` 表示要保存的图像矩阵,而 `filename` 则指定了目标文件路径及其名称。
对于彩色图片而言,还可以指定颜色空间转换选项以及压缩质量参数等附加设置[^1]。
#### 参数说明
- **A**: 输入数组,可以是二值、灰度级或真彩图像。
- **filename**: 字符串类型的输出文件全名(含扩展名),不带路径时默认存于当前工作目录下。
- **fmt** (可选): 文件格式标志字符串,默认依据 `filename` 后缀自动识别;注意不应包含句号前缀[^2]。
更多高级配置项可通过命名-值对的形式传入,比如调整JPEG编码器的质量因子或是PNG无损模式开关等等[^3]。
#### 实际应用案例
下面给出几个典型场景下的具体实现方式:
##### 场景一:简单保存一张JPG格式照片至桌面位置
```matlab
% 加载测试样本并查看基本信息
img = imread('peppers.png');
imshow(img);
% 调整尺寸大小便于观察效果差异
resizedImg = imresize(img,[512 768]);
% 执行存储操作,这里省略了显式的 fmt 参量声明
savePath = 'C:\Users\Lenovo\Desktop\savedImage.jpg';
imwrite(resizedImg, savePath,'Quality',90); % 设置较高画质以减少失真现象发生
```
##### 场景二:批量重命名多张 BMP 图片为 PNG 类型
假设源素材位于某子文件夹内,则可以通过循环遍历完成任务:
```matlab
sourceDir = './bmpSource/';
targetDir = './pngTarget/';
if ~exist(targetDir,'dir')
mkdir(targetDir);
end
files = dir(fullfile(sourceDir,'*.bmp'));
for i=1:length(files)
baseName = files(i).name(1:end-4); % 剥离原有后缀部分
fullPathIn = fullfile(sourceDir,files(i).name);
imgData = imread(fullPathIn);
newFullPathOut = fullfile(targetDir,[baseName '.png']);
imwrite(imgData,newFullPathOut,'BitDepth',8); % 控制位深适应新标准
end
```
##### 场景三:处理高动态范围(HDR)影像资料
当面对更高精度需求的数据集时,如16-bit TIFF 或者浮点数表示法,同样适用此接口进行持久化管理:
```matlab
hdrSample = hdrread('office.hdr'); % 导入HDR资源作为示范材料
rgbMap = tonemap(hdrSample); % 应用色调映射算法降低数值跨度
outputFilepath = 'tonemapped.tiff';
imwrite(rgbMap,outputFilepath,...
'Compression','none',...
'ResolutionUnit','centimeter',...
'XResolution',300,...
'YResolution',300,... % 定义物理分辨率属性
'BitsPerSample',[16 16 16]); % 显式设定各通道采样率
```
matlab print 批量保存图片
在MATLAB中,可以使用imwrite函数来批量保存图像,具体的代码如下:
%设置图像路径
img_path = 'C:\Users\ABC\Desktop\image_folder\';
%获取文件夹中所有的jpg格式的图像文件
imgs = dir([img_path '*.jpg']);
%对每张图像进行处理
for i = 1:length(imgs)
%读取图像
img = imread([img_path imgs(i).name]);
%设置保存路径
save_path = ['C:\Users\ABC\Desktop\save_folder\' imgs(i).name];
%保存图像
imwrite(img, save_path);
end
运行代码后,脚本会自动读取图像文件夹中所有的jpg图像,并将它们批量保存到指定的目录下。
阅读全文
相关推荐
















