yingzi 发表于 2014-5-12 00:34:00

急急急!!!Opencv程序下板运行段错误

我在210板上用qt做了两个Opencv的打开摄像头的程序,下板后运行都发生段错误,请问是什么问题?会不会是工具链的问题?
ps:我的环境是按照随板教程配置的(Ubuntu11.10+qt4.5+4.4.6交叉编译链)

勤奋的小青蛙 发表于 2014-5-12 09:23:43

有可能是工具链的问题,也有可能是QT-Embeded这个配置的问题

wbz073 发表于 2014-5-12 17:57:50

勤奋的小青蛙 发表于 2014-5-12 09:23
有可能是工具链的问题,也有可能是QT-Embeded这个配置的问题

具体错误发出来

yingzi 发表于 2014-5-12 22:21:43

我是挂载的系统,把库可执行程序都放到挂载的系统上,(Qt编译通过的),运行程序直接报
error!
Segmentation fault
这是什么原因???网上有的是说使用cvCreateCameraCapture()发生段错误。{:5_330:}

勤奋的小青蛙 发表于 2014-5-13 09:35:39

yingzi 发表于 2014-5-12 22:21
我是挂载的系统,把库可执行程序都放到挂载的系统上,(Qt编译通过的),运行程序直接报
error!
Segment ...

你用的是opencv ? 我记得这个函数cvCreateCameraCapture()是opencv提供的,以前我也用过这个,也提示过段错误,你先百度搜索一下,我以前就是百度解决的。具体解决方法我有记录,但是现在有点儿忙,稍后给你找一下,谢谢。

yingzi 发表于 2014-5-14 01:54:20

大神!全靠你了~我在做毕设~~百度我搜了N久也没找到~~~我说一下我的环境(配置都是按照TQ210的资料配的,直接在QT上编译,系统是挂载的,然后把库,执行程序都拷到了挂载文件系统的相应目录,然后就执行,段错误~~~)

wtest.cpp如下
#include "wtest.h"
#include "ui_wtest.h"

wtest::wtest(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::wtest)
{
    ui->setupUi(this);

    //初始化成员变量
    m_timer = new QTimer(this);
    m_camera = NULL;
    m_imgFrame = NULL;

    //连接信号和槽
    connect(ui->start, SIGNAL(clicked()), this, SLOT(sltBtnOpenCamera()));
    connect(ui->stop, SIGNAL(clicked()), this, SLOT(sltBtnCloseCamera()));
    connect(m_timer, SIGNAL(timeout()), this, SLOT(sltTimeOut()));



}

wtest::~wtest()
{
    delete ui;
}

void wtest::sltBtnOpenCamera()
{
    //打开摄像头 从摄像头中获取视频

    //试过0,1,202都不行,下板就段错误
    m_camera = cvCreateCameraCapture(0);
    //开启定时器 没隔0.5秒刷新一次
    m_timer->start(500);
}

void wtest::sltTimeOut()
{
    //读取摄像头信息 将读取回来的帧转换成QImage类型 并在主界面的QLabel中显示

    //从摄像头中抓取并返回每一帧
   m_imgFrame = cvQueryFrame(m_camera);
   //将抓取到的帧转换成QImage格式
   QImage showImage((const uchar*)m_imgFrame->imageData, m_imgFrame->width, m_imgFrame->height, QImage::Format_RGB888);
   //将图片显示到QLabel上
   ui->label->setPixmap(QPixmap::fromImage(showImage));
}

void wtest::sltBtnCloseCamera()
{
    //释放摄像头内存
    cvReleaseCapture(&m_camera);
    //停止定时器
    m_timer->stop();

}

void wtest::changeEvent(QEvent *e)
{
    QWidget::changeEvent(e);
    switch (e->type()) {
    case QEvent::LanguageChange:
      ui->retranslateUi(this);
      break;
    default:
      break;
    }
}

勤奋的小青蛙 发表于 2014-5-26 10:05:34

yingzi 发表于 2014-5-14 01:54
大神!全靠你了~我在做毕设~~百度我搜了N久也没找到~~~我说一下我的环境(配置都是按照TQ210的资料配的,直 ...

原先我用opencv2.3.1,发现在开发板上无法打开摄像头,经过无数次的百度,谷歌,听说opencv2.0这个版本可以轻松打开摄像头,于是我重新编译了opencv2.0,确实可以了。不同版本的opencv可能对摄像头的支持不同,需要的库文件也不一样。
页: [1]
查看完整版本: 急急急!!!Opencv程序下板运行段错误