亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? hv_dc1394.cpp

?? tracciatore di mani con webcam
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
/**  * HandVu - a library for computer vision-based hand gesture  * recognition.  * Copyright (C) 2004 Mathias Kolsch, matz@cs.ucsb.edu  *  * This program is free software; you can redistribute it and/or  * modify it under the terms of the GNU General Public License  * as published by the Free Software Foundation; either version 2  * of the License, or (at your option) any later version.  *  * This program is distributed in the hope that it will be useful,  * but WITHOUT ANY WARRANTY; without even the implied warranty of  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  * GNU General Public License for more details.  *  * You should have received a copy of the GNU General Public License  * along with this program; if not, write to the Free Software  * Foundation, Inc., 59 Temple Place - Suite 330,   * Boston, MA  02111-1307, USA.  *  * $Id: hv_dc1394.cpp,v 1.7 2005/12/08 23:25:41 matz Exp $**/// hv_dc1394.c: frame capture from Linux' libdc1394 interface.  This// code started from Rev 1.4 of dc1394_multiview.c//#include <stdio.h>#include <stdlib.h>#include <string>#include <sys/time.h>#include <sys/mman.h>#include <sys/ioctl.h>#include <sys/types.h>#include <unistd.h>#include <signal.h>#include <X11/Xlib.h>#include <X11/Xutil.h>#include <X11/extensions/Xvlib.h>#include <X11/keysym.h>#include <getopt.h>#include <libraw1394/raw1394.h>#include <libdc1394/dc1394_control.h>// OpenCV#include <cxcore.h>#include <cv.h>// HandVu#include "Common.h"#include "HandVu.h"/* uncomment the following to drop frames to prevent delays */#define DROP_FRAMES 1#define MAX_PORTS 3#define MAX_CAMERAS 8#define NUM_BUFFERS 8/* ok the following constant should be by right included thru in Xvlib.h */#ifndef XV_YV12#define XV_YV12 0x32315659#endif#ifndef XV_YUY2#define XV_YUY2 0x32595559#endif#ifndef XV_UYVY#define XV_UYVY 0x59565955#endif/* declarations for libdc1394 */int                       numPorts = MAX_PORTS;raw1394handle_t           handles[MAX_PORTS];int                       numCameras = 0;dc1394_cameracapture      cameras[MAX_CAMERAS];nodeid_t                 *camera_nodes;dc1394_feature_set        features;/* declarations for video1394 */char                     *device_name = NULL;/* declarations for Xwindows */Display                  *display = NULL;Window                    window = (Window) NULL;long                      width, height;long                      device_width, device_height;int                       connection = -1;XvImage                  *xv_image = NULL;XvAdaptorInfo            *info;long                      format = 0;GC                        gc;/* declarations for OpenCV and HandVu */IplImage                 *iplImages[MAX_CAMERAS];IplImage                 *readOnlyImg = NULL;char* conductor_fname = "../config/default.conductor";bool async_processing = false;int num_async_bufs = 30;int m_async_bufID = -1;IplImage *m_async_image = 0;bool sync_display = async_processing && true;IplImage* async_display_image = 0;/* Other declarations */long                      frame_length;long                      frame_free;int                       frame = 0;int                       adaptor = -1;int                       freeze = 0;int                       average = 0;int                       fps;int                       res;int                       fullscreen;unsigned char            *frame_buffer = NULL;int                       verbose = 0;static struct option      long_options[] = {  {"device", 1, NULL, 0},  {"fps", 1, NULL, 0},  {"res", 1, NULL, 0},  {"fullscreen", 1, NULL, 0},  {"conductor", 1, NULL, 0},  {"help", 0, NULL, 0},  {NULL, 0, 0, 0}};voidget_options(int argc, char *argv[]){  int option_index = 0;  fps = 15;  res = 2;  fullscreen = 0;  while (getopt_long(argc, argv, "", long_options, &option_index) >= 0) {    if (optarg) {      switch (option_index) {        /* case values must match long_options */      case 0:        device_name = strdup(optarg);        break;      case 1:        fps = atoi(optarg);        break;      case 2:        res = atoi(optarg);        break;      case 3:        fullscreen = atoi(optarg);        break;      case 4:        conductor_fname = strdup(optarg);        break;      }    }    if (option_index == 5) {      printf("\n"             "        %s - multi-cam monitor for libdc1394 and XVideo\n\n"             "Usage:\n"             "        %s [--fps=[1,3,7,15,30]] [--res=[0,1,2]] [--device=/dev/video1394/x]\n"             "             --fps    - frames per second. default=15,\n"             "                        30 not compatible with --res=2\n"             "             --res    - resolution. 0 = 320x240,\n"             "                        1 = 640x480 YUV4:1:1, 2 = 640x480 RGB8 (default)\n"             "             --device - specifies video1394 device to use (optional)\n"             "                        default = /dev/video1394/<port#>\n"             "             --fullscreen\n"             "             --conductor   - handvu configuration file\n"             "             --help   - prints this message\n\n"             "Keyboard Commands:\n"             "        r = reset detection\n"             "        u = toggle undistortion on/off\n"             "        0-3 = set overlay level\n"             "        ESC/q = quit\n"             "        < -or- , = decrease scale\n"             "        > -or- . = increase scale\n", argv[0], argv[0]);      exit(0);    }  }}/* image format conversion functions */static inline voidiyu12yuy2(unsigned char *src, unsigned char *dest, int NumPixels){  int                       i = 0, j = 0;  register int              y0, y1, y2, y3, u, v;  while (i < NumPixels * 3 / 2) {    u = src[i++];    y0 = src[i++];    y1 = src[i++];    v = src[i++];    y2 = src[i++];    y3 = src[i++];    dest[j++] = y0;    dest[j++] = u;    dest[j++] = y1;    dest[j++] = v;    dest[j++] = y2;    dest[j++] = u;    dest[j++] = y3;    dest[j++] = v;  }}/* macro by Bart Nabbe */#define RGB2YUV(r, g, b, y, u, v)\  y = (9798*r + 19235*g + 3736*b)  / 32768;\  u = (-4784*r - 9437*g + 14221*b)  / 32768 + 128;\  v = (20218*r - 16941*g - 3277*b) / 32768 + 128;\  y = y < 0 ? 0 : y;\  u = u < 0 ? 0 : u;\  v = v < 0 ? 0 : v;\  y = y > 255 ? 255 : y;\  u = u > 255 ? 255 : u;\  v = v > 255 ? 255 : vstatic inline voidrgb2yuy2(unsigned char *RGB, unsigned char *YUV, int NumPixels){  int                       i, j;  register int              y0, y1, u0, u1, v0, v1;  register int              r, g, b;  for (i = 0, j = 0; i < 3 * NumPixels; i += 6, j += 4) {    r = RGB[i + 0];    g = RGB[i + 1];    b = RGB[i + 2];    RGB2YUV(r, g, b, y0, u0, v0);    r = RGB[i + 3];    g = RGB[i + 4];    b = RGB[i + 5];    RGB2YUV(r, g, b, y1, u1, v1);    YUV[j + 0] = y0;    YUV[j + 1] = (u0 + u1) / 2;    YUV[j + 2] = y1;    YUV[j + 3] = (v0 + v1) / 2;  }}/* helper functions */voidset_frame_length(long size, int numCameras){  frame_length = size;  if (verbose)     fprintf(stderr, "Setting frame size to %ld kb\n", size / 1024);  frame_free = 0;  frame_buffer = (unsigned char *) malloc(size * numCameras);}voidcapture_frame(){  static int                have_warned = 0;  dc1394_dma_multi_capture(cameras, numCameras);  if (!freeze && adaptor >= 0) {    for (int i = 0; i < numCameras; i++) {      // create OpenCV image      switch (res) {      case MODE_640x480_YUV411:	if (!have_warned) {	  have_warned = 1;	  printf("WARNING: no OpenCV conversion available for this format\n");	}        //iyu12yuy2((unsigned char *) cameras[i].capture_buffer,	//        frame_buffer + (i * frame_length),	//        (device_width * device_height));        break;      case MODE_320x240_YUV422:      case MODE_640x480_YUV422:	if (!have_warned) {	  have_warned = 1;	  printf("WARNING: no OpenCV conversion available for this format\n");	}	//        memcpy(frame_buffer + (i * frame_length),	//     cameras[i].capture_buffer, device_width * device_height * 2);        break;      case MODE_640x480_RGB:	// don't convert for OpenCV, this is the correct format	readOnlyImg->imageData = (char *) cameras[i].capture_buffer;        if (async_processing) {          if (i==0) {            hvAsyncGetImageBuffer(&m_async_image, &m_async_bufID);            cvCopy(readOnlyImg, m_async_image);          }        } else {          cvCopy(readOnlyImg, iplImages[i]);        }        break;      }            if (verbose) {        CvFont                    font;        cvInitFont(&font, CV_FONT_VECTOR0, 0.5f /* hscale */ ,                   0.5f /* vscale */ , 0.1f /*italic_scale */ ,                   1 /* thickness */ , 8);        char                      str[256];        sprintf(str, "camera id: %d", i);        CvSize                    textsize;        int                       underline;        cvGetTextSize(str, &font, &textsize, &underline);        CvPoint                   pos =          cvPoint(iplImages[i]->width - textsize.width - 5,                  textsize.height + 10);        cvPutText(iplImages[i], str, pos, &font, CV_RGB(0, 255, 0));	//        cvRectangle(iplImages[i], cvPoint(10, 10), cvPoint(100, 100),        //            cvScalar(255, 255, 255, 255), CV_FILLED, 8, 0);      }    }  }  for (int i = 0; i < numCameras; i++) {    dc1394_dma_done_with_buffer(&cameras[i]);  }}void process_frame(){  if (!freeze && adaptor >= 0) {    // main HandVu call    if (async_processing) {      hvAsyncProcessFrame(m_async_bufID);    } else {      hvProcessFrame(iplImages[0], iplImages[1]);    }  }}void display_frame(){  if (!freeze && adaptor >= 0) {    // copy into frame buffer for display    for (int i = 0; i < numCameras; i++) {      if (sync_display && i==0) {        rgb2yuy2((unsigned char *) async_display_image->imageData,                 frame_buffer + (i * frame_length),                 (device_width * device_height));      } else {        rgb2yuy2((unsigned char *) iplImages[i]->imageData,                 frame_buffer + (i * frame_length),                 (device_width * device_height));      }   }    xv_image =      XvCreateImage(display, info[adaptor].base_id, format, 		    (char*) frame_buffer,                    device_width, device_height * numCameras);    XvPutImage(display, info[adaptor].base_id, window, gc, xv_image, 0, 0,               device_width, device_height * numCameras, 0, 0, width, height);    xv_image = NULL;  }  XFlush(display);}void displayCallback(IplImage* image, hvAction action){  if (sync_display) {    cvCopy(image, async_display_image);  } else {    cvCopy(image, iplImages[0]);    display_frame();  }}voidcleanup(void){

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产99精品国产| 91欧美激情一区二区三区成人| 三级影片在线观看欧美日韩一区二区| 亚洲精品中文字幕乱码三区 | 538prom精品视频线放| 欧美一区二区大片| 日本一区二区三区国色天香| 亚洲欧美自拍偷拍色图| 亚洲成人av一区二区三区| 久久国产精品99精品国产| 成人午夜在线播放| 欧美色欧美亚洲另类二区| 久久亚洲精品小早川怜子| 亚洲裸体在线观看| 国产精品毛片无遮挡高清| 久久久久亚洲蜜桃| 亚洲国产精品一区二区www在线| 日韩不卡手机在线v区| 99re免费视频精品全部| 制服丝袜亚洲精品中文字幕| 国产亚洲一本大道中文在线| 国产女同性恋一区二区| 五月天一区二区| 91麻豆免费在线观看| 日韩精品影音先锋| 亚洲综合激情网| 国产99久久久国产精品| 日韩亚洲欧美综合| 亚洲欧洲综合另类| 国产精品99久久久久久似苏梦涵| 不卡一区二区三区四区| 精品国产成人在线影院 | 粉嫩蜜臀av国产精品网站| 色欧美乱欧美15图片| 欧美国产丝袜视频| 国产精品一区在线观看乱码| 欧美一卡2卡三卡4卡5免费| 亚洲精品免费一二三区| 色综合久久久久久久久久久| 欧美国产日本韩| 国产精品1区2区3区| 久久影院午夜论| 久久99精品久久久久婷婷| 制服丝袜一区二区三区| 性欧美大战久久久久久久久| 色香蕉成人二区免费| 亚洲精品国产a| 欧洲一区在线电影| 亚洲大片精品永久免费| 精品视频在线看| 久久99蜜桃精品| 国产网红主播福利一区二区| 成人性视频免费网站| 亚洲桃色在线一区| 欧美日韩一区二区三区四区 | 色呦呦一区二区三区| 亚洲日本va午夜在线影院| 欧美午夜精品久久久久久超碰| 亚洲女爱视频在线| 欧美日韩国产美| 久久99在线观看| 自拍偷在线精品自拍偷无码专区| 色美美综合视频| 美女网站在线免费欧美精品| 久久综合久久综合九色| 色综合天天综合网天天看片| 亚洲永久免费视频| 久久久久久免费| 欧美在线你懂的| 国产精品一区二区在线观看不卡| 国产精品美女久久久久久久网站| 欧美中文字幕亚洲一区二区va在线| 亚洲成人免费在线| 国产精品欧美久久久久一区二区| 欧美在线观看禁18| 国产成人8x视频一区二区| 爽好多水快深点欧美视频| 久久久久久久久免费| 欧美区在线观看| 蜜桃av一区二区在线观看| 亚洲另类一区二区| 国产精品亲子伦对白| 2017欧美狠狠色| 欧美色综合影院| 色悠久久久久综合欧美99| 国产成人在线视频免费播放| 看电视剧不卡顿的网站| 亚洲h在线观看| 亚洲愉拍自拍另类高清精品| 国产精品高清亚洲| 中文字幕不卡一区| 中文字幕乱码久久午夜不卡| 26uuu亚洲| 精品国产三级a在线观看| 91.com视频| 日韩一区二区中文字幕| 3d成人动漫网站| 91精品国产综合久久久蜜臀粉嫩| 欧美性一区二区| 精品视频免费在线| 欧美一区二区在线看| 欧美一级xxx| 精品国产百合女同互慰| 久久精品这里都是精品| 久久人人爽人人爽| 国产女主播视频一区二区| 国产拍欧美日韩视频二区| 日本一区二区三区四区在线视频| 国产日韩精品一区二区浪潮av| 国产亚洲精品bt天堂精选| 国产精品天天看| 亚洲欧美一区二区三区极速播放| 亚洲最色的网站| 石原莉奈一区二区三区在线观看| 美女诱惑一区二区| 成人性视频免费网站| 欧美亚洲尤物久久| 欧美成人bangbros| 国产精品久久久久久久岛一牛影视| 亚洲欧美综合在线精品| 五月激情综合婷婷| 国产乱码字幕精品高清av| 成人精品免费看| 欧美日韩色综合| 国产性做久久久久久| 亚洲激情图片一区| 国产精品亚洲专一区二区三区 | zzijzzij亚洲日本少妇熟睡| 欧美午夜精品久久久久久超碰| www国产成人| 午夜欧美电影在线观看| 国产99久久久久久免费看农村| 欧美日韩在线免费视频| 欧美国产激情二区三区| 秋霞av亚洲一区二区三| 99国产精品久久久久久久久久| 91麻豆精品国产| 亚洲制服丝袜一区| 91女神在线视频| 欧美激情综合网| 狠狠v欧美v日韩v亚洲ⅴ| 欧美日韩日本视频| 亚洲一区二区成人在线观看| 丁香六月综合激情| 国产色产综合色产在线视频| 日本中文字幕一区二区视频| 欧洲精品中文字幕| 亚洲精品日产精品乱码不卡| 99久久亚洲一区二区三区青草| 2023国产精品自拍| 国产在线国偷精品免费看| 日韩免费一区二区| 日韩欧美亚洲另类制服综合在线| 欧美国产精品一区二区| 春色校园综合激情亚洲| 久久久www成人免费无遮挡大片| 喷水一区二区三区| 日韩免费视频一区| 国产在线精品一区在线观看麻豆| 久久综合色综合88| 成人福利视频在线看| 国产精品免费视频一区| 91在线观看下载| 亚洲精品乱码久久久久久久久| 91麻豆精品秘密| 亚洲男人的天堂av| 日本韩国欧美一区| 日韩精品一级中文字幕精品视频免费观看 | 亚洲一区二区三区精品在线| 91国产免费观看| 日本aⅴ免费视频一区二区三区 | 日韩精品视频网| 国产伦精品一区二区三区免费| 欧美亚洲国产bt| 午夜精品一区二区三区免费视频 | 久久亚洲精品国产精品紫薇| 久久电影网电视剧免费观看| 911精品产国品一二三产区| 亚洲国产精品尤物yw在线观看| 在线不卡a资源高清| 久久99蜜桃精品| 中文字幕在线不卡一区| 懂色av一区二区三区免费观看 | 91精品国产入口在线| 久久爱www久久做| 亚洲人成网站在线| 欧美性生交片4| 国产在线精品免费| 夜夜精品视频一区二区| 日韩欧美国产一区在线观看| 国产凹凸在线观看一区二区| 欧洲在线/亚洲| 毛片av一区二区| 亚洲免费色视频| 26uuu亚洲综合色| 日韩欧美另类在线| 欧美色综合天天久久综合精品| 国产一区二区三区美女| 亚洲电影一级片| 一区二区日韩电影|