怎么用vs打开opencv人脸检测

怎么用vs打开opencv人脸检测,第1张

OpenCV安装目录中的\data\

haarcascades目录下的haarcascade_frontalface_alt.xml与haarcascade_frontalface_alt2.xml都是用来检测人脸的Haar分类器,找到他,复制到自己的工程目录下,运行如下代码:

#include <opencv.hpp> 

using namespace cv

int main() {

    int nRetCode  = 0  ////////////// 

    const char *pstrCascadeFileName  = "haarcascades/haarcascade_frontalface_alt2.xml"

    CvHaarClassifierCascade *pHaarCascade  = NULL

    pHaarCascade  = (CvHaarClassifierCascade*)cvLoad(pstrCascadeFileName)

    // 载入图像 

    const char *pstrImageName  = "./image/1.jpg"

    IplImage *pSrcImage  = cvLoadImage(pstrImageName, CV_LOAD_IMAGE_UNCHANGED)

    IplImage *pGrayImage  = cvCreateImage(cvGetSize(pSrcImage), IPL_DEPTH_8U, 1)

    cvCvtColor(pSrcImage, pGrayImage, CV_BGR2GRAY)   // 人脸识别与标记  

    if (pHaarCascade  != NULL)  {

        CvScalar FaceCirclecolors[] = { { { 0, 0, 255 } }, { { 0, 128, 255 } }, { { 0, 255, 255 } }, { { 0, 255, 0 } }, { { 255, 128, 0 } }, { { 255, 255, 0 } }, { { 255, 0, 0 } }, { { 255, 0, 255 } }

        }

        CvMemStorage *pcvMStorage  = cvCreateMemStorage(0)

        cvClearMemStorage(pcvMStorage)   // 识别 

        DWORD dwTimeBegin, dwTimeEnd

        dwTimeBegin  = GetTickCount()

        CvSeq *pcvSeqFaces  = cvHaarDetectObjects(pGrayImage, pHaarCascade, pcvMStorage)

        dwTimeEnd  = GetTickCount()

        // 标记 

        for (int i  = 0 i  < pcvSeqFaces->total i++)   {

            CvRect* r  = (CvRect*)cvGetSeqElem(pcvSeqFaces, i)

            CvPoint center

            int radius

            center.x  = cvRound((r->x  + r->width * 0.5))

            center.y  = cvRound((r->y  + r->height * 0.5))

            radius  = cvRound((r->width  + r->height) * 0.25)

            cvCircle(pSrcImage, center, radius, FaceCirclecolors[i  % 8], 2)

        }

        cvReleaseMemStorage(&pcvMStorage)

    }

    const char *pstrWindowsTitle  = "人脸识别"

    cvNamedWindow(pstrWindowsTitle, CV_WINDOW_AUTOSIZE)

    cvShowImage(pstrWindowsTitle, pSrcImage)

    cvWaitKey(0)

    cvDestroyWindow(pstrWindowsTitle)

    cvReleaseImage(&pSrcImage)

    cvReleaseImage(&pGrayImage)

    return 0

}

基于MFC的人脸识别,用高版本的OpenCV好一些。2008、2010都可以兼容OpenCV2.4系列,做个人脸识别无压力。建议采用新版。

OpenCV 1 可能功能稍微欠缺,不过应该也可以完成,而且学习资料稍多些。LZ斟酌下吧。

OpenCV的环境配置包括系统path变量和VS的设置。

以下说一下OpenCV 2.4.3 在 VS2010 下的配置。

假设\OpenCV-2.4.3\是你的OpenCV所在目录:

在系统环境变量的path目录下,加上OpenCV-2.4.3\build\x86\vc10\bin;

还要在VS的VC++目录里添加好include和lib,VS2010的设置与2008不同,

要打开任意一个项目,在“项目属性”里的配置属性,里边有个“VC++目录”,

这个设置是对于所有项目都可用的,设置一次就行了。

包含文件(include):

OpenCV-2.4.3\build\include

OpenCV-2.4.3\build\include\opencv

OpenCV-2.4.3\build\include\opencv2

库目录(library):

OpenCV-2.4.3\build\x86\vc10\lib

都设置好后重启VS,写一段简单程序测试一下,应该就可以了。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12196226.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-21
下一篇2023-05-21

发表评论

登录后才能评论

评论列表(0条)

    保存