`
haoningabc
  • 浏览: 1465681 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

opencv人脸检测的helloworld

阅读更多
注意两点
1.图片
2.haarcascade_frontalface_alt.xml在opencv的安装路径

参考
http://blog.csdn.net/morewindows/article/details/8426318

#include <opencv2/opencv.hpp>  
#include <cstdio>  
#include <cstdlib>  
#include <Windows.h>  
using namespace std;
int main()
{
	// 加载Haar特征检测分类器  
	// haarcascade_frontalface_alt.xml系OpenCV自带的分类器 下面是我机器上的文件路径  
	const char *pstrCascadeFileName = "E:/tools/opencv2410/opencv/sources/data/haarcascades/haarcascade_frontalface_alt.xml";
	CvHaarClassifierCascade *pHaarCascade = NULL;
	pHaarCascade = (CvHaarClassifierCascade*)cvLoad(pstrCascadeFileName);

	// 载入图像  
	const char *pstrImageName = "13.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();

		printf("人脸个数: %d   识别用时: %d ms\n", pcvSeqFaces->total, dwTimeEnd - dwTimeBegin);

		// 标记  
		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;
}


注意linker input要引入所有 lib
opencv_core2410d.lib
opencv_imgproc2410d.lib
opencv_highgui2410d.lib
opencv_calib3d2410d.lib
opencv_contrib2410d.lib
opencv_features2d2410d.lib
opencv_flann2410d.lib
opencv_gpu2410d.lib
opencv_legacy2410d.lib
opencv_ml2410d.lib
opencv_nonfree2410d.lib
opencv_objdetect2410d.lib
opencv_ocl2410d.lib
opencv_photo2410d.lib
opencv_stitching2410d.lib
opencv_superres2410d.lib
opencv_ts2410d.lib
opencv_video2410d.lib
opencv_videostab2410d.lib
分享到:
评论

相关推荐

    人脸识别检测opencv简单java实现

    人脸识别检测opencv简单java实现要不是毕业好几年我都不舍得分享出来!!! CTRL+D收藏一下或者关注走一波-有你所需!不断更新! 其他相关下载,配套代码以及PPT。稳妥的小老弟 ...加载本地的OpenCV库,这样就可以用它...

    OpencvHelloWorld

    cv::imshow("OpenCV HelloWorld", img); // 显示图片 cv::waitKey(0); // 等待用户按键,0表示无限等待 cv::destroyAllWindows(); // 关闭所有窗口 return 0; } ``` 在这个程序中,我们使用`imread`函数读取...

    opencv安装包for-3.4.1-vc14_vc15

    4. **链接库**:在项目属性的“Linker”部分,选择“Input”,在“Additional Dependencies”中输入OpenCV所需的库文件,例如“opencv_world341.lib”(或根据实际版本调整)。确保这些库文件存在于你之前添加的...

    opencv 2.4.10_vs2008_x86库

    6. **示例和教程**:OpenCV官方文档提供了一系列的教程和示例代码,帮助开发者快速上手,例如“Hello, World!”的图像显示程序,或者简单的边缘检测、颜色转换等操作。 7. **应用领域**:OpenCV库广泛应用于机器人...

    HelloWorld:10 队的 HelloWorld

    【描述】"HelloWorld of 人脸识别" 进一步揭示了这个项目的内容。人脸识别是一种计算机视觉技术,它涉及图像处理、机器学习和深度学习算法,用于识别人脸并进行相应的操作,如验证、识别或追踪。这里的“HelloWorld...

    2018人工智能培训资料(机器视觉)

    4. "Hello World"程序:这是编程初学者的入门练习,通过编写简单的打印"Hello World"的程序,可以熟悉Python的基本语法和开发环境的使用。 5. 静态人脸识别案例:这部分内容可能涉及到OpenCV库的应用,OpenCV是一个...

    haarcascade-righteye-2splits.xml、haarcascade-eye.xml等opencv需要xml

    OpenCV(开源计算机视觉库)是一个...总的来说,这些XML文件是OpenCV中用于对象检测的重要资源,特别是人脸和眼睛等关键特征的检测。理解并掌握如何使用这些级联分类器模型,对于进行计算机视觉项目开发具有重要意义。

    OpenCV4.4.0-cv14-vc15-vs2017.zip

    在实际开发中,OpenCV可以用于多种任务,如图像处理、对象检测、人脸识别、图像分析、视频处理等。了解OpenCV的基本模块,如core、imgproc、highgui、objdetect等,是深入使用的关键。同时,掌握OpenCV的C++接口而非...

    hello_camera.zip

    在实际应用中,你可能还需要处理图像,例如进行人脸检测、特征识别等。OpenCV提供了丰富的功能,如边缘检测(Canny)、直方图均衡化(equalizeHist)以及各种机器学习算法。 通过这样的结合,Qt的GUI优势和OpenCV的...

    前端人脸识别框架Tracking.js

    1. **3.html、face_tag_friends.html、color_video.html、face_hello_world.html、index.html**: 这些可能是示例网页,展示了如何使用Tracking.js 实现各种功能,如基本的脸部检测、多个人脸标记、彩色视频中的人脸...

    seetaface2人脸识别代码

    seetaface2人脸识别,包括 1 对 1,1 对 N, N 对 N。 是在ubuntu16.04上配置的seetaface2,配合opencv使用,所有代码均完美运行,没有bug。

    presentation:使用Python OpenCV制作的实时演示视频前端

    cv2.putText(gray, 'Hello, World!', (10, 50), cv2.FONT_HERSHEY_SIMPLEX, 1, (255, 255, 255), 2) ``` 5. **视频保存**:如果你希望将处理后的视频保存下来,可以使用`cv2.VideoWriter()`创建一个VideoWriter...

    Python入门与人工智能基础

    - **应用场景**:基于图像的人脸检测与识别。 ##### 4.5 人工智能大模型扩展—微调 - **概念**:基于预训练的大模型,通过少量样本进一步训练以适应特定任务。 - **示例**:以ChatGPT为例,通过微调使模型更好地...

    python 实现PIL模块在图片画线写字

    d.text((10, 60), "World", font=fnt, fill=(255, 255, 255, 255)) # 写入红色数字 fillcolor = "#ff0000" # 字体颜色 d.text((base.size[0] - 20, 10), "4", font=fnt, fill=fillcolor) ``` 7. **合并图层...

Global site tag (gtag.js) - Google Analytics