机器学习快速截图工具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版本——文件夹批量处理(原创)的主要内容,如果未能解决你的问题,请参考以下文章