Qt on Android摄像头视频帧获取方法

本文介绍了在使用Qt进行Android应用程序开发时,如何直接获取摄像头原始的NV21格式视频帧,避免了从VideoOutput获取BGR32格式后转换的麻烦。作者分享了在过程中遇到的问题及解决办法,提供了相关的代码实现。
摘要由CSDN通过智能技术生成

        最近有用到qml写安卓程序,相对视频做人脸识别需要获取NV21格式视频帧,最开始是从VideoOutput上去截取的,然而格式居然是BGR32的,各种想办法转NV21都失败了,崩溃了。最后通过上网查阅才知道安卓摄像头原始就是NV21格式,不知道VideoOutput搞了什么小动作,居然把别人整变种。话不多说整理下代码权当记录下。

 

#ifndef CameraFilter_H
#define CameraFilter_H

#include <QObject>
#include <QVideoProbe>
#include <QCamera>

class CameraFilter : public QObject
{
    Q_OBJECT

    Q_PROPERTY(QObject* qmlCamera READ getQmlCamera WRITE setQmlCamera)

public:
    explicit CameraFilter(QObject *parent = nullptr);

    QObject *getQmlCamera() const;
    void setQmlCamera(QObject *qmlCamera);

private slots:
    void _onProcssFram(const QVideoFrame &);
private:
    QObject *_qmlCamera = nullptr;
    QCamera *_camera = nullptr;
    QVideoProbe _probe;
};

#endif // CameraFilter_H

摄像头过滤实现 

#include "CameraFilter.h"

#incl
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值