#include "cv.h"
#include "highgui.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h> //用于防御式编程
#include <math.h>
#include <float.h>//<float.h>与<limits.h>一样是定义边界值的,<float.h>定义的是浮点数的边界值
#include <limits.h>
#include <time.h>
#include <ctype.h>//在调用字符函数时,在源文件中包含的头文件
static CvMemStorage *storage = 0;
static CvHaarClassifierCascade *cascade = 0;//harr 分类器级联的内部标识形式
//const char *cascade_name ="F://OpenCV//OpenCV//data//haarcascades//haarcascade_frontalface_alt2.xml";
const char *cascade_name ="D://boost//xml.xml";
void change(int x1,int y1,int x2,int y2,IplImage *img)
{
unsigned char *data=(unsigned char *)img->imageData;
int step=img->widthStep;
int c=img->nChannels;
for(int j=y1;j<y2;j++)
for(int i=x1;i<x2;i++)
for(int k=0;k<c;k++)
data[j*step+i*c+k]=255;
}
int main()
{
IplImage *img=cvLoadImage("first.bmp",1);
cascade = (CvHaarClassifierCascade*)cvLoad( cascade_name, 0, 0, 0);
storage = cvCreateMemStorage(0);//创建内存块
CvSeq *face = cvHaarDetectObjects(img, cascade,storage,1.1,2,0,cvSize(30, 30));
if(!cascade)
printf("没有相应的文件/n");
else
printf("找到了相应的文件/n");
if(face==0)
printf("没有检测到/n");
else
printf("已经检测到了/n");
cvNamedWindow("first",2);
cvShowImage("first",img);
double scale = 1.1;
static CvScalar colors[] =
{
{{0,0,255}},
{{0,128,255}},
{{0,255,255}},
{{0,255,0}},
{{255,128,0}},
{{255,255,0}},
{{255,0,0}},
{{255,0,255}}
};
int n=face?face->total:0;
if(n==0)
printf("检测失败/n");
else
printf("检测到了%d个目标/n",n);
for (int i = 0; i < (face ? face->total : 0); i++)
{
//返回索引所指定的元素指针
CvRect *r = (CvRect*)cvGetSeqElem(face, i);
if(!r)
printf("无法构成矩形/n");
else
printf("可以构成矩形/n");
//用矩形
//确定两个点来确定人脸位置因为用cvRetangle
CvPoint pt1, pt2;
//找到画矩形的两个点
pt1.x = r->x*scale;
pt2.x = (r->x+r->width)*scale;
pt1.y = r->y*scale;
pt2.y = (r->y+r->height)*scale;
//画出矩形
cvRectangle( img, pt1, pt2, colors[i%8], 3, 8, 0 );
//change(pt1.x,pt1.y,pt2.x,pt2.y,img);
}
cvNamedWindow("second",2);
cvShowImage("second",img);
cvWaitKey(0);
return 0;
}
分享到:
相关推荐
(Appearance-based)或基于视图(View-based)的三维物体识别算法研究,近来 成为人们研究的热点。基于视图的方法通过视觉相似性来识别物体,使得识别系 统设计相对简单,无需显式计算物体的三维模型。另外一方面,...
做物体识别方面的 可以看下这个论文 应用了流行的BOW模型
C#运动物体识别库 Aforge 源代码 不错的识别库 运用 C#编写
移动物体识别源码实例
unity c# 触摸屏物体识别桌算法。使用的是Lean Touch插件。仅供参考!!!
人类能够在图像中轻松的识别出众多的物体,尽管图像中的物体可能千变万化:不同的大小和尺寸,甚至被旋转。即使物体只有部分可见也能够被识别出来。物体识别仍然是计算机视觉中为能够很好解决的问题。
移动物体识别追踪(C#opencvsharp源码实例
目前常用的物体识别方法,其过程非常复杂,信息量和计算量都很大。结合改进遗传算法的神经网络方法,采用将结构与误差结合的适应度函数,改进的遗传算子实现对BP网络结构和权值的同步优化。提出一种用改进遗传算法...
基于open cv的运动物体识别源码,可以识别手势等多种运动趋势 由C++编写
基于图像纹理分析的目标物体识别方法 基于图像纹理分析的目标物体识别方法
我们在第五节和第六节中讲解了柱体识别和立方体识别,这两个章节的内容都只是针对简单几何体进行识别,在本节中,我们将介绍不规则三维物体识别的识别步骤和方法。
比较好的关于物体识别的论文,这个方向的可以看看。
一个介绍物体识别算法的介绍,SIFTSURF、haar特征、广义hough变换的特性对比分析。
使用训练好的模型进行物体识别,对于人、车的识别成功率极高,亲测好用!
深度摄像机实现物体识别和三维定位
tensorflow 物体识别object detection 官方预训练模型
物体识别中的特征点检测算法研究,刘天禾,潘维民,物体识别是计算机视觉中的一个重要领域。主流的物体识别方法都是基于图片中的特征,提取图片中的特征与相关物体的样例图片的特征��
从tensorflow的GitHub上扒出来的一部分代码,完整的物体识别功能,官方网张下载太慢了。
基于谷歌tensorflow开发的物体识别,模型用于识别识别1000种物品分类,模型格式tlite
基于卷积神经网络的物体识别研究与实现.caj,仅供参考