作者 主题: [摄像头] 基于GSVideo的摄像头/视频互动介绍(坑)  (阅读 8285 次)

vinjn

  • SuperManager
  • Hero Member
  • *****
  • Thank You
  • -Given: 40
  • -Receive: 96
  • 帖子: 587
众所周知,当前版本processing的默认摄像头/视频库是臃肿的庞大的低效的讨厌的Quicktime
不幸的是,要使用Libraries/Video中的例子你除了需要安装Quicktime外,
还要装个更加奇怪的从来没听说过的VDIG(是吧,亲)。

幸运的是,官方决定,从2.0开始,放弃使用Quicktime啦(撒花撒花)。
取而代之的是,牛人Andres Colubri 写的 GSVideo 库
这头牛写的GLGraphics 库也将合并入2.0版本的processing,用于替换原先低效的opengl渲染。

因此,本篇介绍的就是基于GSVideo 的摄像头/视频互动
GSVideo http://gsvideo.sourceforge.net/

                                                                                                                        つづく

vinjn

  • SuperManager
  • Hero Member
  • *****
  • Thank You
  • -Given: 40
  • -Receive: 96
  • 帖子: 587
Re: [摄像头] 基于GSVideo的摄像头/视频互动介绍(坑)
« 回复 #1 于: 十月 25, 2011, 04:41:19 pm »
gsvideo这个库比较大,下载起来特别慢,所以我搬运到了国内
感谢盛大的网盘EverBox(做个广告,非常好用)
http://www.everbox.com/f/ApkApJZI2sUc1XVkskqrkuowHQ
大家用力下吧


vinjn

  • SuperManager
  • Hero Member
  • *****
  • Thank You
  • -Given: 40
  • -Receive: 96
  • 帖子: 587
Re: [摄像头] 基于GSVideo的摄像头/视频互动介绍(坑)
« 回复 #2 于: 十月 26, 2011, 05:10:22 pm »
一个非常简易的只跟踪黄色像素的范例 [r > 150 && r < 220 && g > 100 && b < 50]




程序代码: [选择]
//color_tracking.pde
import codeanticode.gsvideo.*;

Detector bs;
GSCapture cam;
PImage img;

final int SCALE = 2;
final int W = 640;
final int H = 480;

void setup()
{
  // Size of applet
  size(W, H);
  rectMode(CORNERS);
  ellipseMode(CORNERS);

  // Capture
  cam = new GSCapture(this, W/SCALE, H/SCALE);
  cam.start();

  // BlobDetection
  img = new PImage(cam.width, cam.height);
  bs = new Detector(this, 0, 0, cam.width, cam.height, 255);
  stroke(255, 0, 0, 150);
  strokeWeight(3);
  noFill();
}

void draw()
{
  if (cam.available() == true)
  {
    cam.read();
    image(cam, 0, 0, width, height);
    img.copy(cam, 0, 0, cam.width, cam.height,
      0, 0, img.width, img.height);
     
    img.loadPixels();
    for (int i = 0; i < img.width*img.height; i++) {
      int pixelColor = img.pixels[i];
      int r = (pixelColor >> 16) & 0xff;
      int g = (pixelColor >> 8) & 0xff;
      int b = pixelColor & 0xff;

      //通过if语句限制要跟踪的颜色的范围
      if (r > 150 && r < 220 && g > 100 && b < 50)
        img.pixels[i] = 255;
      else
        img.pixels[i] = 0;
    }
   
    img.updatePixels();   
    bs.imageFindBlobs(img);
    bs.loadBlobsFeatures();

    int n_blobs = bs.getBlobsNumber();
    PVector[] A = bs.getA();
    PVector[] D = bs.getD();
    println(A);
    for (int i=0;i<n_blobs;i++)
    {
      ellipse(A[i].x*SCALE, A[i].y*SCALE, D[i].x*SCALE, D[i].y*SCALE);
    }
  }
}

完整的工程文件夹见附件,依赖于GSVideo 库,下载见贴内


bhyyhb

  • Newbie
  • *
  • Thank You
  • -Given: 0
  • -Receive: 0
  • 帖子: 2
Re: [摄像头] 基于GSVideo的摄像头/视频互动介绍(坑)
« 回复 #3 于: 十二月 17, 2011, 10:38:45 pm »
有帮助,非常感谢,我试了你帖子里说的“一个非常简易的只跟踪黄色像素的范例”但是有问题“Cannot find a class or type named"Detector""为什么啊

bhyyhb

  • Newbie
  • *
  • Thank You
  • -Given: 0
  • -Receive: 0
  • 帖子: 2
Re: [摄像头] 基于GSVideo的摄像头/视频互动介绍(坑)
« 回复 #4 于: 十二月 18, 2011, 11:00:39 pm »
已经解决了,是我自己没看仔细

moon

  • Newbie
  • *
  • Thank You
  • -Given: 0
  • -Receive: 0
  • 帖子: 1
Re: [摄像头] 基于GSVideo的摄像头/视频互动介绍(坑)
« 回复 #5 于: 三月 08, 2012, 12:35:26 am »
请问一下楼主,这个程序中如何用串口输出跟踪点的坐标呢?
PVector[] A = bs.getA();这个数组定义是什么意思?

vinjn

  • SuperManager
  • Hero Member
  • *****
  • Thank You
  • -Given: 40
  • -Receive: 96
  • 帖子: 587
Re: [摄像头] 基于GSVideo的摄像头/视频互动介绍(坑)
« 回复 #6 于: 三月 09, 2012, 05:42:29 pm »
A1:
你先得学会怎么用串口
然后坐标只是float或者int的变量而已,输出就可以了
最后,你在arduino端需要写对应的接受代码

A2:
这是个PVector类型的数组,即表示一组坐标点(x,y)
具体定义看源代码

xiaxu_702

  • Newbie
  • *
  • Thank You
  • -Given: 0
  • -Receive: 0
  • 帖子: 1
Re: [摄像头] 基于GSVideo的摄像头/视频互动介绍(坑)
« 回复 #7 于: 三月 26, 2012, 02:33:16 pm »
非常感谢~~这对我们初学者来说是莫大的帮助

panhao1

  • Newbie
  • *
  • Thank You
  • -Given: 0
  • -Receive: 1
  • 帖子: 13
  • 华科学弟多苦逼 泪看学姐变人妻
    • ncf零社区
Re: [摄像头] 基于GSVideo的摄像头/视频互动介绍(坑)
« 回复 #8 于: 三月 29, 2012, 01:26:52 am »
这玩意那个关于openCV图像捕捉的真好用 不过openGL渲染效率真的很低么?
msn已经闲置
个人邮箱 4812ph@163.com
企业邮箱 panhao1@ncf-china.com

vinjn

  • SuperManager
  • Hero Member
  • *****
  • Thank You
  • -Given: 40
  • -Receive: 96
  • 帖子: 587
Re: [摄像头] 基于GSVideo的摄像头/视频互动介绍(坑)
« 回复 #9 于: 三月 29, 2012, 10:18:59 am »
这玩意那个关于openCV图像捕捉的真好用 不过openGL渲染效率真的很低么?

不会低啊,而且现在都可以用shader/vbo/fbo
当然和C++不好比

simplestonly

  • Newbie
  • *
  • Thank You
  • -Given: 4
  • -Receive: 0
  • 帖子: 11
Re: [摄像头] 基于GSVideo的摄像头/视频互动介绍(坑)
« 回复 #10 于: 六月 10, 2012, 10:35:43 pm »
已经解决了,是我自己没看仔细
我和你出现了同样问题 但是我没有造出来那里除了错 希望能帮助我 谢谢
真正的艺术家能完成作品

高粱

  • Newbie
  • *
  • Thank You
  • -Given: 0
  • -Receive: 0
  • 帖子: 1
Re: [摄像头] 基于GSVideo的摄像头/视频互动介绍(坑)
« 回复 #11 于: 六月 25, 2013, 11:02:12 pm »
楼里两个地址都打不开呀,晕

vinjn

  • SuperManager
  • Hero Member
  • *****
  • Thank You
  • -Given: 40
  • -Receive: 96
  • 帖子: 587
Re: [摄像头] 基于GSVideo的摄像头/视频互动介绍(坑)
« 回复 #12 于: 六月 26, 2013, 10:18:25 am »
楼里两个地址都打不开呀,晕

打不开你的网络问题

DA6022

  • Newbie
  • *
  • Thank You
  • -Given: 3
  • -Receive: 0
  • 帖子: 6
Re: [摄像头] 基于GSVideo的摄像头/视频互动介绍(坑)
« 回复 #13 于: 四月 19, 2016, 10:39:43 am »
话说怎么调用摄像机的摄像头呢?普通的网络摄像头调用是可以的。

Tags: GSVideo 
 


Back to top