Ⅰ 基於matlab的畢業設計,車牌傾斜校正和人臉識別系統設計哪個難一些
人臉識別更難
Ⅱ 求:用Matlab實現人臉識別的完整程序。最好帶有圖片庫。
我是用vc實現的,想要的話給我發電郵,[email protected],調試可以運行,不過不穩定。你還真是淡定啊,到這個節骨眼才來要畢業設計的程序,都要答辯了吧。
Ⅲ 畢業設計 基於matlab的人臉檢測 彩色圖像進行膚色分割分離出膚色區域後,怎麼檢測出膚色中的人臉啊
;
I=imread('E:\matlab\11.jpg'); %輸入圖像
O=rgb2ntsc(I);
G=O(:,:,2);
[m n]=size(G);
U=zeros(m,n);
for i=1:m
for j=1:n
if G(i,j)>0.03&&G(i,j)<0.16
U(i,j)=1;
end
end
end
sr=strel('disk',6);
C=imclose(U,sr);
L=bwlabel(C);
B=regionprops(L,'area');
Se=[B.Area];Sm=max(Se);
if Sm>m*n/27
B1=bwareaopen(C,Sm);
k_y1=m;k2=m;l2=n;
for i=1:m
if any(B1(i,:))==1
k_y1=i;
break
end
end
for i=k_y1:m
if B1(i,:)==0
k2=i;
break
end
end
for j=1:n
if any(B1(:,j))==1
l_y1=j;
break
end
end
for j=l_y1:n
if B1(:,j)==0
l2=j;
break
end
end
k_y=k2-k_y1;
l=l2-l_y1;
if k_y>.5*l&&k_y<3*l
I1=imcrop(B1,[l_y1 k_y1 l .4*k_y]);
[n1 m1]=size(I1);
L1=bwlabel(I1);
E=regionprops(L1,'area');
Si=[E.Area];
Sm=max(Si);
if Sm/(n1*m1)>.3
B2=bwareaopen(I1,floor(.5*Sm));
g_y1=m1;g2=m1;
for j=1:m1
if any(B2(:,j))==1
g_y1=j;
break
end
end
for j=g_y1:m1
if B2(:,j)==0;
g2=j;break
end
end
g=g2-g_y1;
figure;imshow(I);
hold on
h1=line([l_y1+g_y1,l_y1+g_y1+g],[k_y1,k_y1]);
h2=line([l_y1+g_y1+g,l_y1+g_y1+g],[k_y1,k_y1+1.1*g]);
h3=line([l_y1+g_y1+g,l_y1+g_y1],[k_y1+1.1*g,k_y1+1.1*g]);
h4=line([l_y1+g_y1,l_y1+g_y1],[k_y1+1.1*g,k_y1]);
h=[h1 h2 h3 h4];
set(h,'Color',[1 0 0],'LineWidth',2);
else
figure;imshow(I);
end
else
figure;imshow(I);
end
else
figure;imshow(I);
end
給分!
Ⅳ 基於matlab的人臉識別系統設計難做嗎
基於matlab的人臉識別系統設計哪方面的內容?我可以幫忙
Ⅳ 基於matlab簡單的特徵臉的人臉識別程序
這是我寫的程序,參照《模式識別》張學工第9章。
a1=imread('a1.jpg');
a2=imread('a2.jpg');
b1=imread('b1.jpg');
b2=imread('b2.jpg');
a1=rgb2gray(a1);
a2=rgb2gray(a2);
b1=rgb2gray(b1);
b2=rgb2gray(b2);
figure,imshow(a1)
figure,imshow(a2)
figure,imshow(b1)
figure,imshow(b2)
a1=double(a1);
a2=double(a2);
b1=double(b1);
b2=double(b2);
a1_lie=a1(:);
a2_lie=a2(:);
b1_lie=b1(:);
b2_lie=b2(:);
c=cat(1,a1_lie',a2_lie',b1_lie',b2_lie');
c_mean=mean(c);
X=[a1_lie-c_mean',a2_lie-c_mean',b1_lie-c_mean',b2_lie-c_mean'];
R=X'*X; % R是4×4的矩陣
[p,q]=eig(R);
u=diag(q); % u是4×1的列向量
u=flipud(u); % flipud(u)實現矩陣的上下翻轉, u是4×1的列向量
v=fliplr(p); % fliplr(p)實現矩陣的左右翻轉,v是4×4的矩陣
e=zeros(36000,4);
for m=1:3
e(:,m)=X*v(:,m)./(u(m)^(-0.5)); % 參見《模式識別》P226公式9-18
end
p1=zeros(200,180);
p2=zeros(200,180);
p3=zeros(200,180);
for m=1:36000
p1(m)=e(m);
p2(m)=e(m+36000);
p3(m)=e(m+72000);
end
p1=mat2gray(p1);
p2=mat2gray(p2);
p3=mat2gray(p3);
figure,imshow(p1) % 顯示第1特徵臉
figure,imshow(p2) % 顯示第2特徵臉
figure,imshow(p3) % 顯示第3特徵臉
new=c*e(:,1:3); %分別計算4個訓練樣本分別在第1、第2、第3、特徵臉上的投影
p1=imread('p_test1.jpg'); %讀入一個測試樣本
p1=rgb2gray(p1);
figure,imshow(p1);
p2=double(p1(:));
test=p2'*e(:,1:3);%計算測試樣本在3個特徵臉上的投影
error=zeros(4,1);
for m=1:4
error(m)=norm((new(m,:)-test));
end
[distence,index]=sort(error); %將列向量error中的數據按從小到大排列
if index(1)==1
result=1;
elseif index(1)==2
result=1;
elseif index(1)==3
result=2;
elseif index(1)==4
result=2;
end
result %result為1時表示測試樣本屬於第1個人,為2時表示測試樣本屬於第2個人
Ⅵ 急!!!跪求用MATLAB實現基於主成分分析法的人臉識別系統的演算法
Clustering by Passing Messages Between Data Points
Brendan J. Frey* and Delbert Dueck
science上的一篇人臉識別聚類的文章,但好象不是主成分分析。
Ⅶ 做人臉識別的本科畢業設計,能不能推薦幾本
人臉識別的,可用MATLAB軟體的;。
Ⅷ 急用MATLAB進行人臉識別的演算法修改和解釋
哎,看在100分的面子上。。。。
images=[];%([]是什麼意思?)
這個只不過是將images初始化為一個空矩陣而已。每度一幅圖像,它都將這幅圖像reshape成一個列向量,然後存入images中,最終,讀了N幅圖像,images就有N列,每一列都是一幅圖像。
(原演算法是有兩種方法求特徵向量,一種奇異值分解,另一種不用奇異值分解,我這里選用沒有用奇異值分解方法,但為什麼還是按照奇異值分解了,而且莫名出現一個S的變數,而且這段的公式我不理解)
這個問題是你人臉識別的演算法問題,我不想研究。。。。
c=ceil(M/r);%正無窮大方向取整(M/r是什麼意思?為什麼要這么做)
這個為什麼要這么做,是為了後面subplot畫圖來計算到底需要幾行幾列的。這個對你的程序沒有任何本質的影響。這段程序就是為了把所有的人臉圖在一幅圖上分塊顯示出來。從subplot(r,c,ii);
這句可以看出,r子圖像的是行數,c是列數。那麼M就是圖像數了。。。
colormap('gray');axis equal tight off;%返回線性灰度色圖(這段不理解)
這段是一系列畫圖參數的操作: colormap('gray');是讓你的圖是灰度圖。axis equal是讓橫縱坐標單位一致。tight是限制畫圖的取值范圍。off是去掉坐標顯示。這些都是控制顯示效果的。完全無關緊要。至於具體效果,你可以把這句去掉看看顯示效果,然後在加上這句再看看效果有什麼變化就知道了。
%對於其他人臉圖;按前面計算出的特徵向量重構人臉圖像(這段是說什麼?)
很明顯的,這個是用你這次這20個訓練樣本的結果來重構以前的人臉數據。
基本就是這么回事了。但是人臉特徵識別我沒研究過,你這個程序的演算法非常的簡單,至於為什麼通過幾個特徵值分析就好用那我就不知道了,因為我沒研究過這個。
Ⅸ 本人正在做基於深度學習的人臉識別畢業設計,但不知道怎樣調用相關MATLAB程序代碼。
人臉識別畢業設計有啊,你要幹嘛,給你參考.