天嵌 ARM开发社区

 找回密码
 注册
查看: 4235|回复: 6

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

[复制链接]
yingzi 发表于 2014-5-12 00:34:00 | 显示全部楼层 |阅读模式
我在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()发生段错误。
勤奋的小青蛙 发表于 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可能对摄像头的支持不同,需要的库文件也不一样。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号 )

GMT+8, 2024-5-19 04:59 , Processed in 1.031250 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表