matlab将图片分割成512*512的图片
时间: 2023-11-28 20:59:04 浏览: 141
可以使用以下代码将一张图片分割成多个512*512的小图片:
```matlab
% 读取原始图片
img = imread('original_image.jpg');
% 获取原始图片的大小
[height, width, ~] = size(img);
% 计算分割后的图片数量
num_rows = ceil(height/512);
num_cols = ceil(width/512);
% 初始化分割后的图片数组
imgs = cell(num_rows, num_cols);
% 分割图片
for i = 1:num_rows
for j = 1:num_cols
% 计算当前小图片的位置和大小
row_start = (i-1) * 512 + 1;
col_start = (j-1) * 512 + 1;
row_end = min(i * 512, height);
col_end = min(j * 512, width);
% 从原始图片中提取小图片
imgs{i,j} = img(row_start:row_end, col_start:col_end, :);
% 如果小图片不足512*512,则进行补零操作
if size(imgs{i,j}, 1) < 512
imgs{i,j} = padarray(imgs{i,j}, [512-size(imgs{i,j},1), 0], 0, 'post');
end
if size(imgs{i,j}, 2) < 512
imgs{i,j} = padarray(imgs{i,j}, [0, 512-size(imgs{i,j},2)], 0, 'post');
end
end
end
% 保存分割后的图片
for i = 1:num_rows
for j = 1:num_cols
imwrite(imgs{i,j}, sprintf('image_%d_%d.jpg', i, j));
end
end
```
这段代码首先读取原始图片,然后计算分割后的图片数量和大小。接着,它使用一个循环遍历原始图片,从中提取小图片,并进行补零操作,以确保每个小图片的大小都是512*512。最后,它将每个小图片保存到磁盘上。
阅读全文