MFC opencv實現人臉檢測

2021-10-13 21:41:20 字數 2842 閱讀 6687

先來看看效果圖吧。

檢測後的結果將會顯示在資料夾裡。

首先,需要配置opencv環境,可以參考這篇文章:windows下opencv 3.4.0 + visual studio

2015開發環境的配置

其次,是核心識別庫環境配置,這裡放上另一篇文章,配置步驟寫的很詳細可以參考一下:opencv核心識別庫環境配置

使用mfc繪製對話方塊就不過多贅述了,這裡主要講一下「開啟目標」,「裁剪」,「還原」,「檢測」這四個功能是如何實現的。

void cfacerecognitiondlg:

:onbnclickedbuttoninputtarget()

//開啟控制項

}

每次開啟會將顯示到對話方塊中。

刪除"…\picture\"路徑中的,此路徑用於儲存開啟後的、裁剪後的、檢測結果。

將開啟後的儲存為"…\picture\dst.bmp",方便後續對的處理

上述**還使用到了顯示函式刪除函式

1.顯示函式

void cfacerecognitiondlg:

:showimage

(iplimage* img,

uintid)

//顯示

2.刪除函式

bool

deletedirectory

(const cstring &strpath)

//刪除資料夾中所有檔案

;wsprintf

(stempfilefind,_t(

"%s\\*.*"

), strpath)

;bool isfinded = tempfind.

findfile

(stempfilefind)

;while

(isfinded)

;_tcscpy

(sfoundfilename, tempfind.

getfilename()

.getbuffer

(200))

;if(tempfind.

isdirectory()

);wsprintf

(stempdir,_t(

"%s\\%s"

), strpath, sfoundfilename)

;deletedirectory

(stempdir)

;//刪除資料夾下的檔案

removedirectory

(stempdir)

;//移除空檔案

}else

;wsprintf

(stempfilename,_t(

"%s\\%s"

), strpath, sfoundfilename)

;deletefile

(stempfilename);}

}}tempfind.

close()

;// if(!removedirectory(strpath))

// return false;

return

true

;}

void cfacerecognitiondlg:

:onbnclickedbuttonshear()

//裁剪按鈕if(

!cvgetwindowhandle

("裁剪"))

//關閉視窗

}cvreleaseimage

(&srcimage)

;cvreleaseimage

(&img_show)

;cvdestroywindow

("裁剪");

}

函式中使用到的bmpname變數是cstring全域性變數,在開啟函式中已經賦值,開啟時是原始還未進行裁剪,所以還原時,只需要再次使用該變數,將裁剪後的覆蓋掉,就能實現還原的功能了。

void cfacerecognitiondlg:

:onbnclickedbuttonrestorepic()

//重置

檢測出的人臉將會按序號儲存到…\picture資料夾中。

void cfacerecognitiondlg:

:onbnclickedbuttonfindfaces()

//人臉檢索if(

!eyes_cascade.

load

(eyes_cascade_name)

) cstring targetsrcstr;

//儲存找到的臉部矩形。

std:

:vector faces;

face_cascade.

detectmultiscale

(src, faces,

1.1,2,

0|cascade_scale_image

,size(30

,30))

;for

(size_t i =

0; i < faces.

size()

;++i)

return

;}

人臉檢測實現

使用的是谷歌人臉識別系統facenet裡面的mtcnn人臉檢測部分,這部分可用於人臉檢測和人臉對齊,輸出160 160大小的影象 解壓後放在tensorflow的資料夾下 開啟requirements.txt,我們可以看到我們需要安裝以下依賴 tensorflow 1.7 scipy scikit ...

python opencv 實現人臉檢測

可以用opencv 的庫函式來實現人臉檢測 coding utf 8 import numpy as np import cv2 import time import sys,getopt from video import create capture from common import clo...

VS2013 MFC OPENCV人臉識別考勤軟體

人臉識別考勤軟體dlg.cpp 實現檔案 用於應用程式 關於 選單項的 caboutdlg 對話方塊 using namespace std using namespace cv mat image2,frame std vector faces cascadeclassifier face cas...