opencv摄像头速度慢_请问我这个使用openCV实现摄像头采集及抓拍有什么问题?

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

我用QT使用openCV实现摄像头采集及抓拍,参照网上一个很简单的实例,现在情况是抓拍功能可以正常实现,但是没法显示摄像头实时视频,非常奇怪!

相关代码:

QTimer *timer;

CvCapture *cam;

IplImage *frame;//这几个是类成员

……

timer = new QTimer(this);

connect(timer, SIGNAL(timeout()), this, SLOT(readFrame()));

……

void CameraCap::on_CapBtn_clicked()

{

frame = cvQueryFrame(cam);

QImage image = QImage((const uchar*)frame->imageData, frame->width, \

frame->height, QImage::Format_RGB888).rgbSwapped();

ui->pictureLabel->setPixmap(QPixmap::fromImage(image));

}

void CameraCap::readFrame()

{

frame = cvQueryFrame(cam);

QImage image = QImage((const uchar*)frame->imageData, frame->width, \

frame->height, QImage::Format_RGB888).rgbSwapped();

ui->videoLabel->setPixmap(QPixmap::fromImage(image));

}

void CameraCap::on_openBtn_clicked()

{

cam = cvCreateCameraCapture(0);

timer->start(33);

}

当我不使用timer去触发readFrame函数显示实时视频,只使用抓拍时,可以正常抓拍。

也就是说,抓拍函数on_CapBtn_clicked完全可以正常工作(点抓拍按钮多次,抓拍一直没问题),而readFrame这个函数会导致segmentation fault,奇怪,明明这两个函数几乎没有任何区别!

求高人指点。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值