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编程的帮助手册及相关资料进行了解,我们在后续也将提供相应的例程进行展示。
-
Linux
+关注
关注
88文章
11628浏览量
217989 -
嵌入式主板
+关注
关注
7文章
6107浏览量
36952
发布评论请先 登录
车载双目摄像头如何“看见”世界?
红外摄像头模组是什么?科技时代的眼睛
360环视技术推荐的硬件平台:支持多摄像头与三屏异显的理想选择
【干货分享】基于QT和ffmpeg硬解码的多路摄像头取流
【Milk-V Duo S 开发板免费体验】4 - OV5647 摄像头摄像头测试
一拖四USB多摄像头同步采集方案:高效数据处理的革新突破
社区安装IPC摄像头,跟安装一般安防监控摄像头有什么区别?
米尔瑞芯微RK3576实测轻松搞定三屏八摄像头
ArmSoM RK3588/RK3576核心板,Rockchip摄像头使用
车载摄像头的EMC问题案例

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