编写Matlab程序,将N幅图片批量转换为2*N幅隔行扫描的小图片
时间: 2023-06-24 20:06:48 浏览: 420
以下是一个简单的Matlab程序,可将N幅图片批量转换为2*N幅隔行扫描的小图片:
```matlab
% 读取文件夹中的所有图片
file_folder = uigetdir; % 打开文件夹选择对话框
file_list = dir(fullfile(file_folder, '*.jpg')); % 读取该文件夹下所有jpg图片
for i = 1:length(file_list)
% 读取原始图片
file_name = fullfile(file_folder, file_list(i).name);
img = imread(file_name);
% 获取图片大小和通道数
[h, w, c] = size(img);
% 将原图分成两个小图
img1 = img(1:2:end, :, :); % 隔行取偶数行
img2 = img(2:2:end, :, :); % 隔行取奇数行
% 保存小图
[~, name, ext] = fileparts(file_name);
imwrite(img1, fullfile(file_folder, [name '_1' ext]));
imwrite(img2, fullfile(file_folder, [name '_2' ext]));
end
```
该程序首先使用 `uigetdir` 函数打开文件夹选择对话框,让用户选择要处理的文件夹。然后使用 `dir` 函数读取该文件夹下所有后缀名为 `.jpg` 的图片。接着使用循环遍历每个图片,读取原始图片并获取图片的大小和通道数。根据题目要求,将原图分成两个小图,一个是隔行取偶数行的小图,另一个是隔行取奇数行的小图。最后使用 `imwrite` 函数将两个小图保存到同一文件夹下,文件名分别为原始文件名后加 `_1` 和 `_2` 的后缀。
阅读全文