保存裁剪图像块由Matlab中的blockproc导致

时间:2015-06-22 21:12:06

标签: matlab

我一直在尝试使用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');

1 个答案:

答案 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);