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。

Matlab中使用imcrop函数交互式裁剪图像

原文地址: https://www.cveoy.top/t/topic/AgL 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录