Matlab實現簡單的人臉識別程式

2021-07-11 03:43:09 字數 1412 閱讀 5283

f = rgb2gray(f); % 將影象轉化為灰度圖

level = graythresh(f);

bw = im2bw(f,level); % 將影象二值化

[n1 n2] = size(bw);

h = floor(n1/10); % 將影象分割成10個快

w = floor(n2/10);

h1 = 1;

h2 = h;

s = h*w; % 求得塊的面積

h_i = h;

w_i = w;

for i = 1:10

w1 = 1;w2 =w; % 對應列初始化

for j = 1:10

if (w1 <= w_i || w2 >= 9*w) || (h1 <= h_i || h2 >= n1 - h_i) % 判斷是否在四周的區域

loc = find(bw(h1:h2,w1:w2) == 0)

[num,~] = size(loc);

pr = num*100/s; % 計算灰度為黑色的畫素佔的比例

if pr < 100

bw(h1:h2,w1:w2) = 0;

end

% figure,imshow(bw);

% hold on

end

w1 = w1+w; % 跳到下乙個塊對應的列

w2 = w2+w;

end

h1 = h1+h; % 跳到下乙個塊對應的行

h2 = h2+h;

end

l = bwlabel(bw,8); % 區域標記

bb = regionprops(l,』boundingbox』); % 得到包圍的矩形框

bd = cat(1,bb.boundingbox);

[bd_i,~] = size(bd);

mx = 0;

for k = 1:bd_i

p = bd(k, 3)*bd(k, 4);

% 如果滿足面積塊大,而且寬/高<1.8,則跳到bd的該行

if p > mx && (bd(k,3)/bd(k,4)) < 1.8

mx = p;

j = k;

end

end

imshow(f); hold on; % 顯示

% 畫出矩形框

rectangle(『position』, bd(j, :), …

『edgecolor』, 『r』, 『linewidth』, 3);

title(『標記影象』, 『fontweight』, 『bold』);

matlab 簡單的人臉識別

如下 clc clear all close all 載入影象 endbw im2bw i,graythresh i 二值化 figure subplot 2,3,1 imshow img title 原影象 fontweight bold subplot 2,3,2 imshow i title ...

android opencv 簡單的人臉識別

很簡單的人臉識別功能,識別人臉後用矩形圈出來 實現人臉識別需要模型檔案,opencv再帶的模型檔案在opencv android sdk sdk etc內 我使用haarcascade frontalface alt.xml來做人臉識別 把haarcascade frontalface alt.xm...

最簡單的人臉識別

來了來了 貼出 網路上的其他版本bug很模糊,這份筆記貼進軟體就能實現 介紹啊!這一步是解決資料讀取問題,將資料匯入 檔案1 function imgdata imgdata 用法 imgdata imgdata 分別匯入 pic1 rgb2gray imread d 個人檔案 指令碼檔案 matl...