天天看點

MATLAB:批量随機抽取一定數量的圖檔

我在訓練人臉分類器時,需要随機抽取一定數量的圖檔,目的是保持訓練樣本的多樣性,使用MATLAB程式設計抽取,足足花了兩天時間才搞好,在回過頭看,卻很簡單,這樣大家也就少走了許多彎路,分享給大家,如大家有更好的方法,歡迎多多交流哈

MATLAB:批量随機抽取一定數量的圖檔

clear all;
clc;
N=1000;           %需要抽取的圖檔的數量
num=5412;       %圖檔的總數量
p=randperm(num);%随機生成1~num個随機整數
a=p(1:N);         %取p的前N個數
for i=1:N
    %讀取圖檔的路徑和名字,你需要修改為你圖檔庫的路徑,注意用雙斜線
  imageName=sprintf('D:\\MATLAB2012b\\nonface_SandF\\%d.bmp',a(i)); 
  %fprintf('%s\n',imageName);
  f=imread(imageName);  %讀取圖檔
  fileName=sprintf('D:\\MATLAB2012b\\%d.bmp',a(i));%抽取的圖檔存放的路徑
  imwrite(f,fileName);  %儲存圖檔
 %disp('imageName');
end
           

繼續閱讀