MATLAB教室人數統計(GUI介面)

2021-10-13 13:09:13 字數 1963 閱讀 8590

課題介紹

我國人數基數大,各個公共場合的人數是乙個十分重要的資訊,也是人們一直關注的話題。教室作為其中乙個十分特殊的公共場合,它的人數有著很重要的現實意義。比如在無人或者人數比較少的教室可以做到遠端控制空調和風扇以及電燈數量,節約能源的目的;統計高校學生逃課比例,目前目前老師往往採取手工點名,效率低下,或者存在替代點名的情況,導致資料不可靠;高校或者社會中教室資源緊張,很多場所的教室面臨一座難求,如果有一套行之有效的教室人數統計系統,可以合理地分配社會資源,讓資源得到充分的利用;講座時,參與人數可以充分反映講座人的受歡迎程度,客觀反映真實情況等等。

該課題為基於matlab的教室人數統計,帶有豐富的人機互動gui介面。實現教室人數的計數統計,進而統計出勤率,上課認真聽講的比例。原先預設總人數,未出勤或者書本遮住臉部、趴著玩手機等必然無法採集到人臉,從而對應數量缺失,得出出勤率或聽講率。該課題採用膚色原理進行人臉定位和人臉分割。本課題中,為了介面gui的美觀,刻意將分割出的人臉單獨顯示在gui對應的axes裡。是個不錯的設計選題。

基本流程

讀入(或呼叫筆記本自帶攝像頭),灰度處理,轉ycbcr,二值化,hough變換,人臉區域定位,計數

實現步驟

1、進行呼叫筆記本攝像頭,**如下:

vid=videoinput('winvideo',1);  

set(vid,'returnedcolorspace','rgb');

preview(vid);

2、採集幀影象

i = getsnapshot(vid);

axes(handles.axes1);

imshow(i)

3、人臉檢測

if size(img1, 3) == 1 % 灰度影象,插入白色或黑色框

if mean(img1(:)) > 128 % 影象較亮,使用黑框

shapeinserter = vision.shapeinserter();

else % 影象較暗,使用白框

shapeinserter = vision.shapeinserter('bordercolor','white');

endelse % 彩色影象,插入紅色框

shapeinserter = vision.shapeinserter('bordercolor','custom','custombordercolor',[255 0 0]);

end;

% 繪製邊框以圈出結果

img1 = step(shapeinserter, img1, int32(bboxes));

axes(handles.axes2); %用axes命令設定當前操作的座標軸是axes_src

imshow(img1);

title('框出人臉區域')

4、人臉計數

for i = 1:size(intbbox, 1)%取列數

xs = intbbox(i, 1);

xe = xs + intbbox(3,i);

ys = intbbox(i, 2);

ye = ys + intbbox(i,4);

endsum=mat2str(i)

最終實現結果如下所示

---------------------

執行截圖

gui介面設計圖

執行效果圖

qduoj 統計人數

描述 hs想要統計鎮上總共有多少人,但是他並不想乙個乙個的去數有多少個人,他想了乙個其他的方法,他在鎮上找了n個人,然後問每乙個人 你知道 除你之外 鎮上和你姓氏相同的人有多少個嗎?現在hs想要知道,鎮上最少有多少人?我們保證hs不會問同乙個人兩次。輸入第一行乙個正整數t t 100 表示t組測試樣...

1075 聚餐人數統計

1075 聚餐人數統計 時間限制 1 sec 記憶體限制 128 mb 提交 19003 解決 11429 狀態 討論版 提交 命題人 admin 題目描述 馬克思手稿中有這樣一道趣味數學題 男人 女人和小孩總計n個人,在一家飯店裡吃飯,共花了cost先令,每個男人各花3先令,每個女人各花2先令,每...

qduoj61 統計人數

描述hs想要統計鎮上總共有多少人,但是他並不想乙個乙個的去數有多少個人,他想了乙個其他的方法,他在鎮上找了n個人,然後問每乙個人 你知道 除你之外 鎮上和你姓氏相同的人有多少個嗎?現在hs想要知道,鎮上最少有多少人?我們保證hs不會問同乙個人兩次。輸入第一行乙個正整數t t 100 表示t組測試樣例...