英创信息技术ESM6802支持Qt摄像头应用简介

描述

ESM6802是英创公司推出的基于Freescale i.MX6DL双核处理器(ARM Cortex-A9,主频1GHz)的高性能工控主板,已经移植了Linux 4.1.15版本以及Qt 5.8版本。使用Qt的multimedia模块可以方便快捷的进行摄像头应用的开发,本文使用Qt源码中提供的camera例程进行展示,例程代码可从Qt源码中获取或者向我们工程师索要。

我们使用的摄像头是Logitech C310 USB摄像头,ESM6802的Linux系统能够自动识别,正常使用,更多摄像头将在后续进行测试。camera程序运行效果见下图:

在程序中需要首先检查摄像头设备是否可用,示例代码如下:

bool checkCameraAvailability()

{

if (QCameraInfo::availableCameras().count() > 0)

return true;

else

return false;

}

或者下qml文件中使用如下语句:

Item {

property bool isCameraAvailable: QtMultimedia.availableCameras.length > 0

}

之后选择一个摄像头:

c++代码:

QList cameras = QCameraInfo::availableCameras();

foreach (const QCameraInfo &cameraInfo, cameras) {

if (cameraInfo.deviceName() == "mycamera")

camera = new QCamera(cameraInfo);

}

qml代码:

Camera {

deviceId: QtMultimedia.availableCameras[0].deviceId

}

显示摄像头捕捉的画面:

c++代码:

camera = new QCamera;

viewfinder = new QCameraViewfinder;

camera->setViewfinder(viewfinder);

viewfinder->show();

camera->start(); // to start the viewfinder

qml代码:

VideoOutput {

source: camera

Camera {

id: camera

// You can adjust various settings in here

}

}

qtmultimedia模块也引出了API函数来捕获并保存单个画面或者录制一个视频,以及调整摄像头的参数,如曝光等。用户可以自行查阅Qt编程的帮助手册及相关资料进行了解,我们在后续也将提供相应的例程进行展示。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分