Matlab 图片裁剪代码优化:添加可见窗口清空命令行
根据你提供的代码,我添加了一个可见的窗口(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,没有做其他修改,所以你需要确保其他部分的代码逻辑和路径设置正确。
原文地址: https://www.cveoy.top/t/topic/AcJ 著作权归作者所有。请勿转载和采集!