天嵌 ARM开发社区

 找回密码
 注册
查看: 3063|回复: 4

arm下segmentation fault

[复制链接]
pzhwjk1992 发表于 2013-3-30 19:59:53 | 显示全部楼层 |阅读模式
我用opencv+qt4.5写的在arm上调用摄像头的程序,PC上linux环境下可以正常使用,但在arm上运行时显示segmentation fault。
请问该如何解决呢?以下是代码:
main.cpp:
#include <QtGui/QApplication>
#include "widget.h"

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Widget w;
    w.show();

    return a.exec();
}

//////////////////////////////////////////////////
widget.h:
#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include "highgui.h"
#include "cv.h"
#include <QTimer>
#include <QImage>

using namespace std;
#define TIME_LOCK 30
#define FPS 10
namespace Ui {
    class Widget;
}

class Widget : public QWidget
{
    Q_OBJECT

public:
    explicit Widget(QWidget *parent = 0);
    ~Widget();

private:
    Ui::Widget *ui;
    IplImage *frame;
    CvCapture *capture;
    QTimer *timer;
    QImage *img;
private slots:
    void slot_timer();
protected:
    void paintEvent(QPaintEvent *event);
};

#endif // WIDGET_H

///////////////////////////////////////
widget.cpp:
#include "widget.h"
#include "ui_widget.h"
#include <QPainter>

Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);
    timer = new QTimer(this);
    connect(timer,SIGNAL(timeout()),this,SLOT(slot_timer()));
    timer->start(FPS);
    capture=cvCreateCameraCapture(0);

}

Widget::~Widget()
{
    delete ui;
    cvReleaseImage(&frame);
}
void Widget::slot_timer()
{
    frame=cvQueryFrame(capture);
    if(!frame)
    {
        return;
    }
    cvCvtColor(frame,frame,CV_BGR2RGB);
    img=new QImage((unsigned char*)frame->imageData,frame->width,frame->height,frame->widthStep,QImage::Format_RGB888);
    update();

}
void Widget::paintEvent(QPaintEvent *event)
{
    QPainter *pp=new QPainter(this);
    pp->drawImage(0,0,*img);
}

另外如果调用摄像头的话还可以用什么方法呢?
我的是TQ2440,使用V4L2很卡。

 楼主| pzhwjk1992 发表于 2013-3-31 09:07:45 | 显示全部楼层
zjhsucceed_329 发表于 2013-3-30 23:01
我用opencv也打不开TQ2440开发板上的USB摄像头
我上传了个基于ffmpeg的视频监控,比起直接用v4l2编程要快些 ...

哦,好的。我去下来看下,多谢!
回复 支持 0 反对 1

使用道具 举报

zjhsucceed_329 发表于 2013-3-30 23:01:08 | 显示全部楼层
我用opencv也打不开TQ2440开发板上的USB摄像头
我上传了个基于ffmpeg的视频监控,比起直接用v4l2编程要快些
 楼主| pzhwjk1992 发表于 2013-3-31 23:28:59 | 显示全部楼层
zjhsucceed_329 发表于 2013-3-30 23:01
我用opencv也打不开TQ2440开发板上的USB摄像头
我上传了个基于ffmpeg的视频监控,比起直接用v4l2编程要快些 ...

opencv打不开camera,好像是没有添加ffmpeg的原因。。
yingzi 发表于 2014-5-14 16:53:02 | 显示全部楼层
pzhwjk1992 发表于 2013-3-31 23:28
opencv打不开camera,好像是没有添加ffmpeg的原因。。

lz问题解决了吗?我添加了ffmpeg还是不行
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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

GMT+8, 2024-3-28 22:43 , Processed in 1.046875 second(s), 23 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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