根据你提供的代码,我添加了一个可见的窗口(clc)来清空命令窗口,以便更好地查看输出结果。以下是修改后的代码:

clc
clear all

path='D:\桌面\陈家山煤矸\4000\煤-分开\';
path0=strcat(path,'0');
% 需要改3个地址  和4个coal gangue

files0=dir(fullfile(path0));
len0=length(files0);

for i=3:len0
    a=imread(strcat(files0(3).folder,'\',files0(i).name));
    imshow(a);
    for kk=1:4
        [x,y] = ginput(1);  % 确定图像上的两点利用ginput函数,返回值是两点的坐标 
        [j,pic_1] = imcrop(a, [x(1),y(1),abs(99),abs(99)]);
        
        % 从该定点出发向右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,[x(1),y(1),abs(99),abs(99)]);
            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
    % 按ctrl+c停止
end

这样,代码执行时会在命令窗口显示更清晰的输出结果。请注意,我只添加了 clc,没有做其他修改,所以你需要确保其他部分的代码逻辑和路径设置正确。

Matlab 图片裁剪代码优化:添加可见窗口清空命令行

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

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