2012-06-02 81 views
1

我在與加工OpenCV庫難度:問題與處理的OpenCV和QuickTime視頻拍攝

http://ubaa.net/shared/processing/opencv/index.html

我運行的是絕對最基本的可能的示例代碼:

import hypermedia.video.*; 

OpenCV opencv; 

void setup() 
{ 
    opencv = new OpenCV(this); 
    opencv.capture(width, height); 
} 

void draw() 
{ 
    opencv.read(); 
    background(opencv.image()); 
} 

但每次我收到控制檯消息:

SGIdle failed in icvGrabFrame_QT_Cam with error -1 

並且沒有視頻輸入。我的攝像頭開啓,但程序掛起。

我已經看到其他人在線與這個問題,但我還沒有找到一個單一的來源。我有一種感覺,它與QuickTime的視頻捕捉有關,但我不確定。

系統信息:

  • 最近的MacBook Pro,內置iSight攝像頭
  • OS X 10.7.3(獅子)
  • 的QuickTime 10.1
  • OpenCV的1.1
  • 處理1.5.1

有誰知道發生了什麼事?這是很難得到實際的項目時庫的最基本的功能不工作...

+0

你的樣品,我在OS X 10.68工作......你有沒有嘗試沒有OpenCV的讀取捕捉?或嘗試最後的alpha處理2.06a? –

+0

您是否嘗試過[JavaCV](http://code.google.com/p/javacv/)? –

回答

0

這裏使用標準庫中的解決方法的一個例子來捕捉圖像

// OpenCV cannot capture anymore since a iTunes or QuickTime update. 
// It returns this error: 
// SGIdle failed in icvGrabFrame_QT_Cam with error -1 
// This example shows how to use standard video library to capture then 
// pass the image to OpenCV. 
// 
// Pierre Rossel 
// 25.2.2013 


import hypermedia.video.*; 
import processing.video.*; 

OpenCV opencv; 
Capture video; 
int captureW = 640; 
int captureH = 480; 

void setup() 
{ 
    size(captureW, captureH); 

    opencv = new OpenCV(this); 
    opencv.allocate(captureW, captureH); 
    opencv.threshold(255); // Clears allocated image 

    video = new Capture(this, captureW, captureH); 
    video.start(); 
} 

void draw() 
{ 
    if (video.available()) { 
    video.read(); 
    opencv.copy(video); 
    } 

    background(opencv.image()); 
}