機器學習快速截圖工具matlab版本——文件夾批量處理(原創)
阿新 • • 發佈:2019-01-23
been 打開 提示 num please style folder 選擇 保存
簡要說明:
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版本——文件夾批量處理(原創)