資源簡介
運行于matlab下的人臉識別的全套源碼,包括人臉數據庫和非常詳細的實驗說明書(11頁,帶截圖),根據說明能運行,能看懂代碼;采用的特征提取算法是奇異值分解,采用的分類器是神經網絡;希望對大家有幫助!

代碼片段和文件信息
%讀入人臉圖片,并將其轉換成為灰度矩陣然后將灰度矩陣進行切割,再用SVD分解,并提取圖片特征
%返回參數
%feature為指向裝載后的數據文件的變量
%num的值為特征值向量的第幾維
%函數聲明
function?[feature]?=?allFeature(num)
%用戶輸入特征維數數目
panDuan?=?1;
while?panDuan?
????featureNumber?=?input(‘請輸入特征維數(僅限于8?16,24?32,48,64,80):‘);
????%如果輸入的是8.16.24.32.48.64.80則繼續執行代碼
????if(featureNumber?==?8||featureNumber?==?16?||?featureNumber?==?24||?featureNumber?==?32?||?featureNumber?==?48?||?featureNumber?==?64?||?featureNumber?==?80?)
????????panDuan?=?0;
????????disp(‘開始裝載圖像文件請等待.......‘)
????%如果輸入的是其它數字提示輸入有誤請用戶重新輸入
????else
????????fprintf(‘你輸入的不是這5個數中的任何一個請重新輸入!\n\n‘)
????end
end
%得出圖片的路徑,并自動讀入每張圖片
dir?=?[‘\1.bmp?‘
????‘\2.bmp?‘
????‘\3.bmp?‘
????‘\4.bmp?‘
????‘\5.bmp?‘
????‘\6.bmp?‘
????‘\7.bmp?‘
????‘\8.bmp?‘
????‘\9.bmp?‘
????‘\10.bmp‘];
for?x=1:40
????%將數字轉換成字符,便于把兩個字符連接,組成圖片的完整路徑
????a?=?int2str(x);
????b?=?[‘s‘];
????d?=?[b?a];
????for?i=1:10
????????%得到每張圖片的文件名
????????e?=?[d?dir(i1:7)];
????????%?將圖片轉化成為灰度矩陣
????????M?=?double(imread(e));
????????%如果用戶輸入的是8則執行下段代碼把數據處理得到8維的特征向量
????????if?(featureNumber?==?8)
????????????for?j=1:4
????????????????for?k=1:2
????????????????????%將圖片的灰度矩陣劃分成8塊小矩陣
????????????????????temp=M((j-1)*28+1:j*28(k-1)*46+1:k*46);
????????????????????%對每個小矩陣進行SVD變換
????????????????????[utemp1v]=svd(temp);
????????????????????%提取一個的SVD系數作為特征值
????????????????????temp2=temp1(numnum);
????????????????????%得到所有圖片的特征矩陣
????????????????????feature((x-1)*10+i(j-1)*2+k)=temp2;
????????????????end
????????????end
????????end
????????%如果用戶輸入的是16則執行下段代碼把數據處理得到16維的特征向量
????????if?(featureNumber?==?16)
????????????for?j=1:4
????????????????for?k=1:4
????????????????????%將圖片的灰度矩陣劃分成16塊小矩陣
????????????????????temp=M((j-1)*28+1:j*28(k-1)*23+1:k*23);
????????????????????%對每個小矩陣進行SVD變換
????????????????????[utemp1v]=svd(temp);
????????????????????%提取一個的SVD系數作為特征值
????????????????????temp2=temp1(numnum);
????????????????????%得到所有圖片的特征矩陣
????????????????????feature((x-1)*10+i(j-1)*4+k)=temp2;
????????????????end
????????????end
????????end
????????%如果用戶輸入的是24則執行下段代碼把數據處理得到16維的特征向量
????????if?(featureNumber?==?24)
????????????for?j=1:6
????????????????for?k=1:4
????????????????????%將圖片的灰度矩陣劃分成24塊小矩陣
????????????????????temp=M((j-1)*18+1:j*18(k-1)*23+1:k*23);
????????????????????%對每個小矩陣進行SVD變換
?????????????????????[utemp1v]=svd(temp);
????????????????????%提取一個的SVD系數作為特征值
????????????????????temp2=temp1(numnum);
????????????????????%得到所有圖片的特征矩陣
????????????????????feature((x-1)*10+i(j-1)*4+k)=temp2;
????????????????end
????????????end
????????end
????????%如果用戶輸入的是32則執行下段代碼把數據處理得到32維的特征向量
????????if?(featureNumber?==?32)
????????????for?j=1:8
????????????????for?k=1:4
????????????????????%將圖片的灰度矩陣劃分成32塊小矩陣
????????????????????temp=M((j-1)*14+1:j*14(k-1)*23+1:k*23);
????????????????????%對每個小矩陣進行SVD變換
????????????????????[utemp1v]=svd(temp);
????????????????????%提取最大的SVD系數作為特征值
????????????????????
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????371??2008-06-07?12:28??人臉識別代碼\代碼運行流程.txt
?????文件??????????0??2009-05-12?11:13??人臉識別代碼\運行于matlab下.txt
?????文件???????5640??2008-05-17?16:05??人臉識別代碼\method_svd_奇異值分解\allFeature.m
?????文件????????732??2007-04-08?19:57??人臉識別代碼\method_svd_奇異值分解\content.m
?????文件???????1385??2006-06-03?03:08??人臉識別代碼\method_svd_奇異值分解\createBP.m
?????文件???????1562??2007-03-18?20:53??人臉識別代碼\method_svd_奇異值分解\createBP1.m
?????文件???????2188??2007-03-27?21:33??人臉識別代碼\method_svd_奇異值分解\result.m
?????文件???????6624??2007-06-08?11:53??人臉識別代碼\method_svd_奇異值分解\Start.m
?????文件????????335??2006-06-03?11:24??人臉識別代碼\method_svd_奇異值分解\trainBP.m
?????文件???????1973??2008-03-04?12:55??人臉識別代碼\method_svd_奇異值分解\train_test.m
?????文件????????371??2008-06-07?12:28??人臉識別代碼\method_svd_奇異值分解\代碼運行流程.txt
?????文件??????11382??2005-05-27?15:09??人臉識別代碼\method_svd_奇異值分解\s9\1.BMP
?????文件??????10318??1994-04-18?14:18??人臉識別代碼\method_svd_奇異值分解\s9\1.pgm
?????文件??????11382??2005-05-27?15:09??人臉識別代碼\method_svd_奇異值分解\s9\10.BMP
?????文件??????10318??1994-04-18?14:07??人臉識別代碼\method_svd_奇異值分解\s9\10.pgm
?????文件??????11382??2005-05-27?15:09??人臉識別代碼\method_svd_奇異值分解\s9\2.BMP
?????文件??????10318??1994-04-18?14:18??人臉識別代碼\method_svd_奇異值分解\s9\2.pgm
?????文件??????11382??2005-05-27?15:09??人臉識別代碼\method_svd_奇異值分解\s9\3.BMP
?????文件??????10318??1994-04-18?14:18??人臉識別代碼\method_svd_奇異值分解\s9\3.pgm
?????文件??????11382??2005-05-27?15:09??人臉識別代碼\method_svd_奇異值分解\s9\4.BMP
?????文件??????10318??1994-04-18?14:18??人臉識別代碼\method_svd_奇異值分解\s9\4.pgm
?????文件??????11382??2005-05-27?15:09??人臉識別代碼\method_svd_奇異值分解\s9\5.BMP
?????文件??????10318??1994-04-18?14:18??人臉識別代碼\method_svd_奇異值分解\s9\5.pgm
?????文件??????11382??2005-05-27?15:09??人臉識別代碼\method_svd_奇異值分解\s9\6.BMP
?????文件??????10318??1994-04-18?14:07??人臉識別代碼\method_svd_奇異值分解\s9\6.pgm
?????文件??????11382??2005-05-27?15:09??人臉識別代碼\method_svd_奇異值分解\s9\7.BMP
?????文件??????10318??1994-04-18?14:07??人臉識別代碼\method_svd_奇異值分解\s9\7.pgm
?????文件??????11382??2005-05-27?15:09??人臉識別代碼\method_svd_奇異值分解\s9\8.BMP
?????文件??????10318??1994-04-18?14:07??人臉識別代碼\method_svd_奇異值分解\s9\8.pgm
?????文件??????11382??2005-05-27?15:09??人臉識別代碼\method_svd_奇異值分解\s9\9.BMP
............此處省略827個文件信息
評論
共有 條評論