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文章
11760瀏覽量
219046 -
嵌入式主板
+關注
關注
7文章
6107瀏覽量
37080
發布評論請先 登錄
ESP32-S3在初始化攝像頭時檢測到攝像頭模組型號不被支持
自動駕駛既然有雙目攝像頭了,為什么還要三目攝像頭?
車載雙目攝像頭如何“看見”世界?
紅外攝像頭模組是什么?科技時代的眼睛
360環視技術推薦的硬件平臺:支持多攝像頭與三屏異顯的理想選擇
【干貨分享】基于QT和ffmpeg硬解碼的多路攝像頭取流
【Milk-V Duo S 開發板免費體驗】4 - OV5647 攝像頭攝像頭測試
canmv-k230使用攝像頭出現紫色畫面,并且顯示不完全怎么修復?
一拖四USB多攝像頭同步采集方案:高效數據處理的革新突破
社區安裝IPC攝像頭,跟安裝一般安防監控攝像頭有什么區別?
英創信息技術ESM6802支持Qt攝像頭應用簡介
評論