Matlab中使用imcrop函数交互式裁剪图像
Matlab中使用imcrop函数交互式裁剪图像
在使用Matlab处理图像时,经常需要对图像进行裁剪。imcrop 函数可以方便地实现这一功能,并且可以通过设置参数来控制裁剪区域。
如果想要在操作时显示一个正方形窗口,并在窗口中手动选择要裁剪的区域,可以将 imcrop 函数的第二个参数设置为空数组 []。
以下是修改后的代码:
for kk=1:4
[x,y] = ginput(1); % 确定图像上的两点利用ginput函数,返回值是两点的坐标
[j,pic_1] = imcrop(a, []); % 使用交互模式裁剪图像
% 从该定点出发向右abs(x(1)-x(2)),向下abs(y(1)-y(2))的区域进行切割
% 利用imcrop函数对图像进行切割,输入参数是一个空数组[],会启动交互模式
figure,imshow(j);
imshow(j,'initialMagnification','fit')
imwrite(j,['D:\桌面\陈家山煤矸\4000\9通道同时裁剪\0\coal\','coalc4',int2str(i-3),'-',int2str(kk),'.JPG']);
% imwrite(j,['D:\桌面\陈家山煤矸\4000\9通道同时裁剪\0\gangue\','ganguec7',int2str(i-3),'-',int2str(kk),'.JPG']);
% 裁剪其他8波段
for c=1:8
path1=strcat(path,num2str(c));
files1=dir(fullfile(path1));
a1=imread(strcat(path1,'\',files1(i).name));
[cc,pic_1] = imcrop(a1, []);
imwrite(cc,['D:\桌面\陈家山煤矸\4000\9通道同时裁剪\',num2str(c),'\coal\','coalc4',int2str(i-3),'-',int2str(kk),'.JPG']);
% imwrite(cc,['D:\桌面\陈家山煤矸\4000\9通道同时裁剪\',num2str(c),'\gangue\','ganguec7',int2str(i-3),'-',int2str(kk),'.JPG']);
end
close
end
现在,当你运行代码时,它将显示一个正方形窗口,在该窗口中你可以手动选择要裁剪的区域。请确保你已经安装了 Image Processing Toolbox。
原文地址: https://www.cveoy.top/t/topic/AgL 著作权归作者所有。请勿转载和采集!