我一直在尝试使用blockproc和imcrop函数从原始图像中裁剪和保存块(子图像),但我无法做到。我只能看到街区的数字。有没有办法将这些块保存到指定的文件夹?感谢。
clear all
close all
clc
a = imread('3.jpg');
folderPath='C:\Program Files\Folder';
blockSize = [70,70];
d = blockproc(a,blockSize,@(bs) imcrop(bs.data));
%blockproc(a, blockSize, @(bs)imcrop(bs.data),'BorderSize', [1 1 ]);
%i=1;
fileName = [folderPath num2str(i) '.jpg'];
imwrite(d, fileName, 'jpg');
答案 0 :(得分:0)
我根据您在问题中提供的信息假设,"您希望调出图像的每个70x70块,然后使用IMCROP在此70x70块中裁剪出较小的部分,并将较小的区域保存到文件中#34 ;. (如果这不是您的意图,请更新问题)。
你可以通过使用这个功能来做到这一点(空气代码,希望你明白了)
在cropAndSaveBlock.m中:
function cropAndSaveBlock(bs)
subBlockRegion = imcrop(bs.data);
% Use location of the block to come up with a unique name
fileName = [strrep(num2str(bs.location),' ','_') '.jpg'];
imwrite(sbBlockRegion, fileName);
end
然后使用:
调用它blockproc(a,blockSize,@cropAndSaveBlock);