机器学习快速截图工具matlab版本——文件夹批量处理(原创)

Posted gohikings

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了机器学习快速截图工具matlab版本——文件夹批量处理(原创)相关的知识,希望对你有一定的参考价值。

简要说明:

1、打开文件夹后,遍历所有JPG格式图片,在同目录下新建一个CROP的文件夹存放裁剪的图片。

2、对每张图片,

(1)初步框选你要裁剪的矩形框,会自动以你框选的左上点为起点,裁剪大小为长宽自动扩展,结果会自动保存值..Crop文件夹

(2)图片show出来后,也可以不用框选,只需要心中想好你要裁剪图片的左上起点就好,然后点一下该点,就会自动save。

%% use mouse to rect picture,and auto change to next picture
%  《机器学习快速截图》 by 亦行之 20190124 15:26:30
clear;clc;clear all;
file_path = uigetdir(*.*,Please Select Folder);
img_path_list = dir(strcat(file_path,‘,*.jpg));
mkdir(strcat(file_path,Crop));
img_num = length(img_path_list);
I=cell(1,img_num);
if img_num > 0 
    for j = 1:img_num 
       image_name = img_path_list(j).name;
       image = imread(strcat(file_path,‘,image_name)); 
       I{j}=image; 
       %检查当前图片大小
       width=size(I{j},2);
       length=size(I{j},1);
       %显示图像,
       imshow(image);
       % 实现鼠标框选并记录选框的坐标
       pos = getPosition(imrect);        
       %设定截图大小为227*227pixel,所以只需选择左上作为截图起点,间距226
       x_crop = 226;
       y_crop = 226;
       %计算截图的起始和终点位置
       col=round(pos(1)) : round(pos(1) + x_crop); 
       row=round(pos(2)) : round(pos(2) + y_crop);   
       %检出是否越界
       if (pos(1)+x_crop) > width
           col = round(width-x_crop) : round(width); 
       end
       if (pos(2)+y_crop) > length
           row = round(length-y_crop) : round(length); 
       end
       %生成裁剪后的图片并显示(延时0.3s)
       subwin=image(row,col,:);
       figure;
       imshow(subwin);
       pause(0.3);
       %保存图片到对应的文件夹下,并关闭当前文件的图片
       imwrite(subwin,strcat(file_path,Crop‘,image_name));
       close all;    
       %当图片都检测完毕,提示截图结束。
       if j == img_num
          h = msgbox(All picture have been cropped!)
       end
    end
end

 

以上是关于机器学习快速截图工具matlab版本——文件夹批量处理(原创)的主要内容,如果未能解决你的问题,请参考以下文章

matlab 怎样批量删除text文件的指定行?

[matlab]机器学习及SVM工具箱学习笔记

Matlab使用神经网络&遗传算法优化

MATLAB安装libsvm工具箱的方法

给Matlab添加工具箱Toolbox的方法(有截图详细讲解)(R2019b)

小技巧使用matlab的深度学习工具箱deepNetworkDesigner快速设计