当前位置: 首页 > news >正文

免费建立企业网站网站类网站开发

免费建立企业网站,网站类网站开发,前端开发培训班多少钱,简单手机网站明天又要去面试了#xff0c;趁次机会也将以前做的东西总结一下#xff0c;为以后理解提供方便#xff0c;也再加深下印象。 网络视频监控与人脸识别主要由三个程序组成#xff1a;1、视频采集与传输程序#xff1b;2、接受与显示程序#xff1b;3、人脸识别程序。下面就…明天又要去面试了趁次机会也将以前做的东西总结一下为以后理解提供方便也再加深下印象。 网络视频监控与人脸识别主要由三个程序组成1、视频采集与传输程序2、接受与显示程序3、人脸识别程序。下面就分别来分析一下这三个程序。 一、视频采集与传输程序Servfox 关键部分解析 1、视频数据采集可采用共享内存方式和读方式 [cpp] view plaincopy int v4lGrab (struct vdIn *vd )  {    static    int frame  0;          int len;    int size;    int erreur  0;    int jpegsize  0;      struct frame_t *headerframe;    double timecourant 0;    double temps  0;    timecourant  ms_time();        if (vd-grabMethod)  /*strong共享内存方式/strong*/      {        vd-vmmap.height  vd-hdrheight;        vd-vmmap.width  vd-hdrwidth;        vd-vmmap.format  vd-formatIn;               /*该函数成功返回则表示一帧采集已完成采集到的图像数据放到      起始地址为 vd-mapvd-mbuf.offsets[vd-frame]      的内存区中读取该内存区中的数据便可得到图像数据。      接着可以做下一次的 VIDIOCMCAPTURE。*/        if (strongioctl (vd-fd, VIDIOCSYNC, vd-vmmap.frame/strong)  0)          {        perror (cvsync err\n);        erreur  -1;      }             /* Is there someone using the frame */        while((vd-framelock[vd-frame_cour] ! 0)  vd-signalquit)      usleep(1000);      pthread_mutex_lock (vd-grabmutex);           temps  ms_time();      /*采集完成进行jpeg压缩处理里面大有文章*/       jpegsize strongconvertframe/strong(vd-ptframe[vd-frame_cour] sizeof(struct frame_t),              vd-pFramebuffer  vd-videombuf.offsets[vd-vmmap.frame],              vd-hdrwidth,vd-hdrheight,vd-formatIn,vd-framesizeIn);      /*填充数据帧信息头*/       headerframe(struct frame_t*)vd-ptframe[vd-frame_cour];       snprintf(headerframe-header,5,%s,SPCA);        headerframe-seqtimes  ms_time();       headerframe-deltatimes(int)(headerframe-seqtimes-timecourant);        headerframe-w  vd-hdrwidth;       headerframe-h  vd-hdrheight;       headerframe-size  (( jpegsize  0)?0:jpegsize);       headerframe-format  vd-formatIn;       headerframe-nbframe  frame;       // printf(compress frame %d times %f\n,frame, headerframe-seqtimes-temps);            pthread_mutex_unlock (vd-grabmutex);       /************************************/              if ((strongioctl (vd-fd, VIDIOCMCAPTURE, (vd-vmmap)/strong))  0)      {        perror (cmcapture);        if(debug) printf (cmcapture err \n);        erreur  -1;      }        vd-vmmap.frame  (vd-vmmap.frame  1) % vd-videombuf.frames;        vd-frame_cour  (vd-frame_cour 1) % OUTFRMNUMB;        //if(debug) printf(frame nb %d\n,vd-vmmap.frame);        }    else     /* strong读方式/strong*/       {        size  vd-framesizeIn;        len  strongread/strong (vd-fd, vd-pFramebuffer, size);        if (len  0 )      {        if(debug) printf (v4l read error\n);        if(debug) printf (len %d asked %d \n, len, size);        return 0;      }              /* Is there someone using the frame */         while((vd-framelock[vd-frame_cour] ! 0) vd-signalquit)      usleep(1000);      pthread_mutex_lock (vd-grabmutex);            temps  ms_time();       jpegsize convertframe(vd-ptframe[vd-frame_cour] sizeof(struct frame_t),              vd-pFramebuffer ,              vd-hdrwidth,vd-hdrheight,vd-formatIn,vd-framesizeIn);              headerframe(struct frame_t*)vd-ptframe[vd-frame_cour];       snprintf(headerframe-header,5,%s,SPCA);        headerframe-seqtimes  ms_time();       headerframe-deltatimes(int)(headerframe-seqtimes-timecourant);        headerframe-w  vd-hdrwidth;       headerframe-h  vd-hdrheight;       headerframe-size  (( jpegsize  0)?0:jpegsize);        headerframe-format  vd-formatIn;        headerframe-nbframe  frame;        //  if(debug) printf(compress frame %d times %f\n,frame, headerframe-seqtimes-temps);            vd-frame_cour  (vd-frame_cour 1) % OUTFRMNUMB;        pthread_mutex_unlock (vd-grabmutex);         /************************************/             }    return erreur;  }   2、数据通过socket通信方式发送 [cpp] view plaincopy for (;;)      {               memset(message,0,sizeof(struct client_t));      /*接受网络数据保存在message 结构体中*/       ret  read(sock,(unsigned char*)message,sizeof(struct client_t));              /*根据接受到的控制信息进行控制*/             /*大小调节*/       else if (message.updosize){ //compatibility FIX chg quality factor ATM          switch (message.updosize){          case 1: qualityUp(videoIn);          break;          case 2: qualityDown(videoIn);          break;          }          ack  1;      }        /*帧数调节*/       else if (message.fps){          switch (message.fps){          case 1: timeDown(videoIn);          break;          case 2: timeUp(videoIn);          break;          }          ack  1;      }        /*睡眠控制*/       else if (message.sleepon){          ack  1;       }        else ack 0;         while ((frameout  videoIn.frame_cour)  videoIn.signalquit)   usleep(1000);         if (videoIn.signalquit){      videoIn.framelock[frameout];            headerframe  (struct frame_t *) videoIn.ptframe[frameout];        headerframe-acknowledge  ack;        headerframe-bright  bright;        headerframe-contrast  contrast;        headerframe-wakeup  wakeup;        /*发送数据帧头信息*/       ret  write_sock(sock, (unsigned char *)headerframe, sizeof(struct frame_t)) ;         if(!wakeup)           /*发送数据帧信息*/       ret  write_sock(sock,(unsigned char*)(videoIn.ptframe[frameout]sizeof(struct frame_t)),headerframe-size);            videoIn.framelock[frameout]--;       frameout  (frameout1)%4;             } else {         if(debug) printf(reader %d going out \n,*id);      break;        }      }    close_sock(sock);    pthread_exit(NULL);  }   二、接受与显示程序 1、JPEG图片压缩原理 实际上一个平面的图像可以理解为除了水平 X 和垂直 Y 以外还有一个色彩值的 Z 的三维的系统。Z 代表了三元色中各个分支 R/G/B 的混合时所占的具体数值大小每个像素的 RGB 的混合值可能都有所不同各个值有大有小但临近的两个点的 R/G/B 三个值会比较接近。两个相邻的点会有很多的色彩是很接近的那么如何能在最后得到的图片中尽量少得记录这些不需要的数据 也即达到了压缩的效果。
http://www.pierceye.com/news/353823/

相关文章:

  • 免费做网站wxp114五种常用的网站推广方法
  • 简单的网站建设找哪个公司新网站seo技术
  • 电子网址怎么创建下载优化大师app
  • 网站上传服务器教程wordpress 开启多用户
  • 做网站的公司重庆互联网营销方式
  • 在线探测网站开发语言东莞人才市场现场招聘会地址
  • 检测网站是否被挂黑链seo网站营销推广
  • 当今网站开发技术的现状自己做的网站怎么上排行榜
  • 外贸没有公司 如何做企业网站?成都市住房和城乡建设局官网查询
  • 公证网站建设管理无锡百度正规推广
  • 免费海外网站建设自学设计软件的免费网站
  • 个人姓名最多备案多少个网站外贸网站制作公司
  • 上海市建设安全协会官方网站上海人才网官网公示
  • 原创文章网站wordpress注册页面修改密码
  • 山东省建设注册执业中心网站博物馆网站做的最好的
  • 做论坛网站能赚钱吗山东济南网站建设公司
  • 建网站海外英文建站
  • 学网站开发网页制作苏州模板建站哪家好
  • 音乐网站建设怎么上传音乐易点租电脑租赁官网
  • 做足球网站前景一个网站源码值多少钱
  • 成都网站排名优化公司上海创意网站建设
  • 贵阳市住房城乡建设局八大员网站wordpress 输出 文章时间
  • 那个装修公司的网站做的好想创业去哪里找项目
  • 公选课网页制作与网站建设网页游戏平台十大排名
  • 无锡锡牛网站建设网站倒计时
  • 南通做外贸网站网站建设培训四川
  • 微小店适合卖做分类网站吗手机开发者网站
  • 广州建企业网站网页设计是啥意思
  • wap手机网站建设刀模 东莞网站建设
  • 怎样做网站的外链做推广优化的网站有哪些内容