创龙科技
直播中

张磊

7年用户 522经验值
私信 关注

人脸识别跟踪代码核心思想怎么理解

[tr]您好,管理员。
      我这在学习 人脸识别跟踪  的代码,里面很多的初始化的代码 (我也是一个一个的查到)和一些声明的变量(变量没有注释,也就不知道干什么了),但是怎么样将这些独立的模块连起来,使让我对这个程序有个大体的认识还做不到,主要的原因就是不理解 编程人员 编写代码的思路。类似这段代码:
/* 申请分配数据*/
        image_buffer = (unsigned char *) cvAlloc(CAPTURE_IMAGE_WIDTH * CAPTURE_IMAGE_HEIGHT * 2);
        NULL。
        gray_buffer = (unsigned char *) cvAlloc(CAPTURE_IMAGE_WIDTH * CAPTURE_IMAGE_HEIGHT);


        /* 申请、初始化image,用于人脸识别算法*/
        image = (IplImage *) cvAlloc(sizeof(*image));
        cvInitimageHeader(image, cvSize(CAPTURE_IMAGE_WIDTH, CAPTURE_IMAGE_HEIGHT), IPL_DEPTH_8U, 1,
                        IPL_ORIGIN_TL, CV_DEFAULT_IMAGE_ROW_ALIGN);


        /* 初始化级联缓冲区,分类器*/
        buffer = (int *) cvAlloc(sizeof(cascade_buffer));
        cascade = (CvHaarClassifierCascade *) buffer;
        for (i = 0; i < CLASSIFIER_CASCADE_SIZE; i++)
        {
                if (cascade_buffer        
        


[/tr]

回帖(11)

庞晓瑜

2019-6-28 10:54:51
@Lewis 来解答下吧
举报

刘丽菲

2019-6-28 11:12:47
image_buffer 存放RGB图像
gray_buffer 存放灰度图像

例程里使用EDMA是将摄像头的图像搬移到 LCD 的显示buffer里,算法处理里没有用edma
举报

付雯瑶

2019-6-28 11:28:40


谢谢回复:
  1 image_buffer,gray_buffer,这个懂了;
  2 EDMA这个也懂了(这里天恰好找到了EDMA工作原理的文章,期刊的介绍)
  3  /* 申请、初始化image,用于人脸识别算法*/
        image = (IplImage *) cvAlloc(sizeof(*image));
        cvInitImageHeader(image, cvSize(CAPTURE_IMAGE_WIDTH, CAPTURE_IMAGE_HEIGHT), IPL_DEPTH_8U, 1,
                        IPL_ORIGIN_TL, CV_DEFAULT_IMAGE_ROW_ALIGN);
     这段代码(我想知道这个image 的具体作用,(我的理解是:一张人脸在显示屏上显示需要颜色值和位位置:色值信息由image_buffer提供,位置信息由des_sequence提供,那请问这里的 image  到底怎么用?));
  4    /* 初始化存放人脸位置数据缓冲 */
        dsp_sequence2 = (CvSeq *) cvAlloc(sizeof(CvSeq) * 2);
        其中sizeof(CvSeq)*2,的 2 在这里代表什么,就是说为什么是2 ,而不是其他3或者4或者5之类的(回答这个问题该是和ov2640有关,我上网找了很久关于ov2640的介绍,都没有具体介绍到 为什么是  2 ,而不是其他。)
  疑问书写完毕
举报

何微微

2019-6-28 11:48:39
image是一个结构体,IplImage 类型的。image_buffer是RGB565的彩色图像数据,转换为灰度图像后,就会保存到gray_image里,再把gray_image指针放到image里:image->imageData = (char *)gray_buffer;
image作为图像处理API的传入参数。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分