1. 批量裁剪图片,并且转化成指定尺寸的黑白图像(Matlab)。
代码如下:
tic;
clc;
clear;
% 1. 从文件夹中批量调取图片
inputFolder = '文件路径'; % 替换为包含图片的文件夹路径
outputFolder = '目标路径'; % 替换为保存处理后图片的文件夹路径
% 检查输出文件夹是否存在,如果不存在则创建
if ~exist(outputFolder, 'dir')
mkdir(outputFolder);
end
% 获取输入文件夹中的所有图片文件
fileList = dir(fullfile(inputFolder, '*.jpg')); % 假设你的图片格式为 JPG,可以根据需要更改
% 2. 循环处理每张图片
for i = 1:length(fileList)
% 读取图片
imagePath = fullfile(inputFolder, fileList(i).name);
originalImage = imread(imagePath);
% % 3. 将图片转化成固定尺寸
% targetSize = [188, 188]; % 替换为所需的尺寸
% resizedImage = imresize(originalImage, targetSize);
%从图片中心,裁剪指定尺寸
targetSize = [188, 188]; % 替换为所需的尺寸
[rows, cols, ~] = size(originalImage);
cropX = max(1, floor((cols - targetSize(2)) / 2) + 1);
cropY = max(1, floor((rows - targetSize(1)) / 2) + 1);
croppedImage = imcrop(originalImage, [cropX, cropY, targetSize(2) - 1, targetSize(1) - 1]);
% 4. 将图像转换成黑白图像
grayImage = rgb2gray(croppedImage);
% 5. 对图像进行无重复编号
[~, imageName, ~] = fileparts(fileList(i).name);
outputName = sprintf('%s_%d.jpg', imageName, i);
% 保存处理后的图片到指定文件夹
outputPath = fullfile(outputFolder, outputName);
imwrite(grayImage, outputPath);
end
disp('处理完成!');
效果展示,如下: