2012-02-07 148 views
0

我的代碼如下。當我在openCamera中執行cvCreateCameraCapture(-1)時,應用程序結束。調用`cvCreateCameraCapture(-1)時異常終止`

提示:程序異常終止。啓動過程中退出代碼0X000135

爲什麼?電腦是筆記本電腦,內置攝像頭。

int main(int argc, char *argv[]) 
{ 
    QApplication a(argc, argv); 
    MainWindow w; 
    w.show(); 
    return a.exec(); 
} 

>

#include<highgui.h> 
#include<cv.h> 

class MainWindow : public QMainWindow 
{ 
    Q_OBJECT 
public: 
    explicit MainWindow(QWidget *parent = 0); 
    ~MainWindow(); 

private slots: 
    void openCamera(); 
    void readFrame(); 
    void closeCamera(); 
    void takingPhote(); 

private: 
    Ui::MainWindow *ui; 
    QTimer* timer; 
    QImage* image; 
    CvCapture* cam; 
    IplImage* frame; 
}; 

MainWindow::MainWindow(QWidget *parent) : 
    QMainWindow(parent), 
    ui(new Ui::MainWindow) 
{ 
    ui->setupUi(this); 
    cam = NULL; 
    timer = new QTimer(this); 
    image = new QImage; 

    connect(ui->openCamera, SIGNAL(clicked()), this, SLOT(openCamera())); 
} 

void MainWindow::openCamera() 
{ 
    cam = cvCreateCameraCapture(-1); 
    // timer->start(33); 
    // connect(timer, SIGNAL(timeout()), this, SLOT(readFrame())); 
} 
+0

什麼操作系統?我推薦試用'0'而不是'1',然後調用它,檢查它是否返回:'if(!cam)qDebug()<<「!!! cam失敗」;' – karlphillip 2012-02-07 11:29:33

+0

操作系統是win7,當我按下運行按鈕時,提示:1:運行2:異常終止3:結束。即該應用程序不起作用。如果我沒有使用opencv函數,它可以正常運行。什麼問題,或者我需要設置運行opencv的環境變量?謝謝.. – 2012-02-07 13:39:12

+1

我想讓你替'cvCreateCameraCapture()'調用別的東西,比如'cvWaitKey(0);'。如果這是一個與環境變量相關的運行時問題,而Windows沒有找到OpenCV,那麼這個簡單的測試就會顯示出來。如果它繼續崩潰,那麼它可能確實與環境配置有關。 – karlphillip 2012-02-07 16:44:51

回答

1

添加我以前的評論作爲一個答案,因爲它幫助你解決問題:

我要你代替cvCreateCameraCapture()調用別的東西,像cvWaitKey(0); 。如果這是一個與環境變量相關的運行時問題,而Windows沒有找到OpenCV,那麼這個簡單的測試就會顯示出來。所以,如果它繼續崩潰,那麼它可能確實與環境配置有關。