码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2019-01-23 17:27:06      阅读:147      评论:0      收藏:0      [点我收藏+]

标签:起点   tla   图片   pat   图像   ext   文件的   path   坐标   

简要说明:

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版本——文件夹批量处理(原创)

标签:起点   tla   图片   pat   图像   ext   文件的   path   坐标   

原文地址:https://www.cnblogs.com/gohikings/p/10309372.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!