資源簡介
基于BP神經網絡的人臉識別MATLAB實現,包括軟件界面,采用ORL人臉庫,是本科畢設,比較粗糙,供參考!

代碼片段和文件信息
%讀入人臉圖片,并將其轉換成為灰度矩陣然后將灰度矩陣進行切割,再用SVD分解,并提取圖片特征
%返回參數
%feature為指向裝載后的數據文件的變量
%num的值為特征值向量的第幾維
%函數聲明
function?[feature?featureNumber]?=?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系數作為特征值
???????????????
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2019-05-05?22:22??BP神經網絡人臉識別MATLAB\
?????文件??????117180??2019-05-05?22:18??BP神經網絡人臉識別MATLAB\Face_recognition.fig
?????文件???????27950??2019-05-05?22:18??BP神經網絡人臉識別MATLAB\Face_recognition.m
?????文件????????1136??2019-04-17?17:50??BP神經網絡人臉識別MATLAB\Main.m
?????文件????????2013??2019-04-17?10:58??BP神經網絡人臉識別MATLAB\train_test_spilt.m
?????文件?????????354??2019-05-05?20:32??BP神經網絡人臉識別MATLAB\trainBP.m
?????文件????????5639??2019-04-17?09:14??BP神經網絡人臉識別MATLAB\allFeature.m
?????文件?????????611??2019-04-17?13:35??BP神經網絡人臉識別MATLAB\changePara.m
?????文件???????10318??1994-04-18?14:07??BP神經網絡人臉識別MATLAB\s9\9.pgm
?????文件????????3960??2019-04-17?17:17??BP神經網絡人臉識別MATLAB\createBP.m
?????文件?????????166??2019-02-25?19:59??BP神經網絡人臉識別MATLAB\face20.txt
?????文件????????2276??2019-05-05?21:09??BP神經網絡人臉識別MATLAB\result.m
?????目錄???????????0??2019-04-15?13:37??BP神經網絡人臉識別MATLAB\s1\
?????文件???????11382??2005-05-27?15:04??BP神經網絡人臉識別MATLAB\s1\1.BMP
?????文件???????10318??1994-04-18?14:17??BP神經網絡人臉識別MATLAB\s1\1.pgm
?????文件???????11382??2005-05-27?15:04??BP神經網絡人臉識別MATLAB\s1\10.BMP
?????文件???????10318??1994-04-18?14:07??BP神經網絡人臉識別MATLAB\s1\10.pgm
?????文件???????11382??2005-05-27?15:04??BP神經網絡人臉識別MATLAB\s1\2.BMP
?????文件???????10318??1994-04-18?14:17??BP神經網絡人臉識別MATLAB\s1\2.pgm
?????文件???????11382??2005-05-27?15:04??BP神經網絡人臉識別MATLAB\s1\3.BMP
?????文件???????10318??1994-04-18?14:17??BP神經網絡人臉識別MATLAB\s1\3.pgm
?????文件???????11382??2005-05-27?15:04??BP神經網絡人臉識別MATLAB\s1\4.BMP
?????文件???????10318??1994-04-18?14:17??BP神經網絡人臉識別MATLAB\s1\4.pgm
?????文件???????11382??2005-05-27?15:04??BP神經網絡人臉識別MATLAB\s1\5.BMP
?????文件???????10318??1994-04-18?14:17??BP神經網絡人臉識別MATLAB\s1\5.pgm
?????文件???????11382??2005-05-27?15:04??BP神經網絡人臉識別MATLAB\s1\6.BMP
?????文件???????10318??1994-04-18?14:07??BP神經網絡人臉識別MATLAB\s1\6.pgm
?????文件???????11382??2005-05-27?15:04??BP神經網絡人臉識別MATLAB\s1\7.BMP
?????文件???????10318??1994-04-18?14:07??BP神經網絡人臉識別MATLAB\s1\7.pgm
?????文件???????11382??2005-05-27?15:04??BP神經網絡人臉識別MATLAB\s1\8.BMP
?????文件???????10318??1994-04-18?14:07??BP神經網絡人臉識別MATLAB\s1\8.pgm
............此處省略825個文件信息
評論
共有 條評論