色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

【PHYTEC開發(fā)板試用體驗】phyBOARD-Pollux i.MX 8M Plus 主機開發(fā)程序并嘗試開發(fā)板調(diào)試2

開發(fā)板試用精選 ? 來源:開發(fā)板試用 ? 作者:電子發(fā)燒友論壇 ? 2022-12-05 10:39 ? 次閱讀

本文來源電子發(fā)燒友社區(qū),作者:王志奇, 帖子地址:https://bbs.elecfans.com/jishu_2305273_1_1.html

之前測試搭建好了軟硬件開發(fā)環(huán)境后,我開始了項目開發(fā)嘗試,首先是調(diào)試了虛擬機Ubuntu的攝像頭獲取,然后利用QT程序調(diào)用攝像頭拍照,并嘗試在開發(fā)板上直接調(diào)試攝像頭調(diào)用程序,

第二個小目標是在主機上安裝OpenCV,并利用OpenCV調(diào)用攝像頭,然后是通過QT程序通過OpenCV實現(xiàn)調(diào)用攝像頭,并且通過QT直接在開發(fā)板上調(diào)式這個OpenCV調(diào)用攝像頭的應(yīng)用

第三個大目標是將程序移植到開發(fā)板并在開發(fā)板上測試,這一步由于我之前沒有完全解決opt下root目錄空間的問題,未能完全實現(xiàn),

并且在調(diào)試中發(fā)現(xiàn),我的主機和開發(fā)板用了不同的攝像頭出現(xiàn)了我還未能解決的問題。目前還在嘗試中。

本次項目測試在開發(fā)板上沒有完全實現(xiàn),主要是調(diào)試的root空間百分百被使用,把程序直接復(fù)制到開發(fā)板后由于攝像頭問題未能實現(xiàn),

但是,整個開發(fā)過程以及遇到的問題還是能起到一些避坑幫助的。

接下來,我將測試開發(fā)過程簡單介紹,并把一些問題記錄出來,

我在上一篇中,測試好了主機的開發(fā)環(huán)境,因為開發(fā)板提供的系統(tǒng)已經(jīng)完成了一些配置,只需要稍微測試程序調(diào)試即可,但是一定要注意在開發(fā)調(diào)試的時候,注意使用開發(fā)板root空間,不要將大的程序文件拷貝過去,會導(dǎo)致開發(fā)板端調(diào)試報錯的。

vmbox使用攝像頭的時候,需要在設(shè)置里面USB添加一個攝像頭篩選器,筆記本開發(fā)時候建議使用外接USB攝像頭,不建議使用筆記本自帶攝像頭開發(fā)測試,這會導(dǎo)致在開發(fā)板上測試使用攝像頭可能無法成功的問題。
2022-09-12_090918.png

另外,vmbox虛擬機需要安裝vbox官網(wǎng)的對應(yīng)版本的usb擴展插件,這個很重要,下載好插件后需要在vbox啟動后的上方菜單設(shè)備設(shè)置中添加設(shè)備控制增強插件,并且,在選擇USB控制器的時候要選擇2.0 和3.0
2022-09-12_153218.png

兩個選項輪流嘗試,并添加USB攝像頭,有的usb攝像頭雖然是2。0但USB選擇器需要選3.0才能被vbox虛擬機中的Ubuntu系統(tǒng)識別。2022-09-12_155802.png
2022-09-12_154833.png

QT程序控制攝像頭開發(fā)程序在網(wǎng)上都有,比較簡單,創(chuàng)建新項目的時候注意選擇正確項目屬性如圖,一般Ubuntu系統(tǒng)設(shè)別了攝像頭,

2022-09-12_171856.png
QT代碼問題不大,在主機桌面測試后,可以選擇在ARM開發(fā)板上測試QT啟用攝像頭,你需要吧虛擬機識別的USB攝像頭插到開發(fā)板上進行測試,如果你使用的是筆記本自帶的攝像頭,這個時候多多少少會有些問題,另外,最好先關(guān)虛擬機再插拔攝像頭,我的系統(tǒng)奔潰了好幾次,耽誤了很多時間用于恢復(fù)虛擬機系統(tǒng),很不穩(wěn)定。

test.pro

QT += core gui

QT += multimedia

QT += multimediawidgets

greaterThan(QT_MAJOR_VERSION,
4): QT += widgets

TARGET
= QCameratest

TEMPLATE
= app

SOURCES
+= main.cpp

widget.cpp

HEADERS += widget.h

FORMS += widget.ui

.h

#ifndef
WIDGET_H

#define
WIDGET_H

#include

class
QCamera;

class
QCameraViewfinder;

class
QCameraImageCapture;

class
Widget : public QWidget

{

Q_OBJECT

public:

Widget(QWidget *parent = 0);



~Widget();

private
slots:

void exitBtnResponded();



void cameraImageCaptured(int,QImage);

private:

QCamera*             m_pCamera;       //讀取攝像頭



QCameraViewfinder*   m_pViewfinder;   //渲染攝像頭



QCameraImageCapture* m_pImageCapture; //獲取攝像頭當前幀

};

#endif
// WIDGET_H

main.cpp

#include
"widget.h"

#include

int
main(int argc, char *argv[])

{

QApplication a(argc, argv);



Widget w;



w.show();







return a.exec();

}

Widget.cpp

#include
"widget.h"

#include

#include

#include

#include

#include

#include

#include

Widget::Widget(QWidget
*parent)

: QWidget(parent)

{

setWindowTitle("QCamera");



m_pCamera = new QCamera(this);



m_pViewfinder = new

QCameraViewfinder(this);

m_pImageCapture = new

QCameraImageCapture(m_pCamera);

QPushButton* button1 = new

QPushButton("Capture");

QPushButton* button2 = new

QPushButton("Exit");

QVBoxLayout *mainLayout = new

QVBoxLayout(this);

mainLayout->addWidget(m_pViewfinder);



mainLayout->addWidget(button1);



mainLayout->addWidget(button2);



connect(button1, SIGNAL(clicked()),

m_pImageCapture, SLOT(capture()));

connect(button2, SIGNAL(clicked()), this,

SLOT(exitBtnResponded()));

connect(m_pImageCapture,

SIGNAL(imageCaptured(int,QImage)), this,
SLOT(cameraImageCaptured(int,QImage)));

m_pImageCapture->setCaptureDestination(QCameraImageCapture::CaptureToFile);

m_pCamera->setCaptureMode(QCamera::CaptureStillImage);

m_pCamera->setViewfinder(m_pViewfinder);



m_pCamera->start();

}

Widget::~Widget()

{

delete

m_pCamera;

delete

m_pViewfinder;

delete m_pImageCapture;

}

void
Widget::exitBtnResponded()

{

m_pCamera->stop();



close();

}

void
Widget::cameraImageCaptured(int, QImage image)

{

QString savepath =

QFileDialog::getSaveFileName(this,"Save
Capture","Capture","Image png(.png);;Image
jpg(
.jpg);;Image bmp(*.bmp)");

if(!savepath.isEmpty()){



    image.save(savepath);



}

第二部分是安裝OpenCV在Ubuntu上,并使用opencv調(diào)用攝像頭,

OpenCV安裝過程會不斷更新對應(yīng)的庫, 以及更新cmake
相關(guān),需要你給虛擬機再添加一個橋接到無線網(wǎng)卡的虛擬機網(wǎng)卡,如果,你使用的是網(wǎng)線與開發(fā)板調(diào)試的話。這樣就不需要來回切換了。

CSDN
上 有個叫不高興的
Ubuntu下QT 調(diào)用OpenCV使用攝像頭帖子中對于OpenCV安裝非常詳細,可以參考,之后的具體開發(fā)就參考思路即可。

其中,OpenCV安裝過程中要不斷注意報錯提示,安裝網(wǎng)絡(luò)上的步驟基本問題不大,少什么就裝什么,網(wǎng)絡(luò)暢通的話也就個把小時。
2022-09-13_092150.png

2022-09-13_092248.png

2022-09-13_092416.png

2022-09-13_094036.png

OpenCV安裝之后,有一件重要的事情就是升級QT,直接安裝QT5并設(shè)置環(huán)境變量,官方的Ubuntu 虛擬機中是QT4 ,這個開發(fā)的時候需要QT5,我使用的是OpenCV3, 已經(jīng)很古老了,但都需要QT5支持。

QT調(diào)用OpenCV開啟攝像頭的代碼放在文章最后,
2022-09-13_105019.png

我在實現(xiàn)qt調(diào)用OpenCV設(shè)別人臉的時候,Ubuntu崩潰了,開發(fā)板之前的root空間也又成了百分百占用了,我之前已經(jīng)重新擴展的etx4根空間了,但我發(fā)現(xiàn)我需要重新掛載一個新建的root空間,
2022-09-13_105606.png

另外就是,虛擬機以及硬盤所在
空間一定要留夠25G以上的空間,因為在安裝opencv相關(guān)時候,虛擬內(nèi)存和虛擬空間增長速度很快,盤滿了虛擬機Ubuntu系統(tǒng)容易崩潰導(dǎo)致重裝環(huán)境,刪除虛擬機重新連接虛擬硬盤無法繼續(xù)開發(fā)和測試,

目前,我正在解決重裝環(huán)境,等解決完,下一期我將著重在開發(fā)板上測試項目程序,實現(xiàn)最終項目。

這是找到一個比較好用的OpenCV編輯照片和調(diào)用攝像頭的代碼

optest.cpp

#include

#include

using
namespace cv;

using
namespace std;

int
main(int argc, char** argv)

{

CvPoint center;

double scale = -3;

IplImage* image =
cvLoadImage("lena.jpg");

argc == 2? cvLoadImage(argv[1]) : 0;

cvShowImage("Image", image);

if (!image) return -1; center = cvPoint(image->width / 2,
image->height / 2);

for (int i = 0;iheight;i++)

for (int j = 0;jwidth;j++) {



    double dx = (double)(j - center.x) /

center.x;

double dy = (double)(i - center.y) /

center.y;

double weight = exp((dx*dx +

dy*dy)*scale);

uchar* ptr = &CV_IMAGE_ELEM(image,

uchar, i, j * 3);

ptr[0] = cvRound(ptr[0] * weight);



    ptr[1] = cvRound(ptr[1] * weight);



    ptr[2] = cvRound(ptr[2] * weight);



  }

Mat src;Mat dst;

src = cvarrToMat(image);

cv::imwrite("test.png", src);

cvNamedWindow("test",1);  imshow("test",

src);

cvWaitKey();



return

0;

}

g++ test.cpp -o testpkg-config --cflags--libs opencv

攝像頭使用代碼

#include

#include

#include

#include

using
namespace cv;

using
namespace std;

int
main()

{

//打開電腦攝像頭

VideoCapture cap(0);

if (!cap.isOpened())

{

cout << "error" <<

endl;

waitKey(0);



  return 0;

}

//獲得cap的分辨率

int w =
static_cast(cap.get(CV_CAP_PROP_FRAME_WIDTH));

int h =
static_cast(cap.get(CV_CAP_PROP_FRAME_HEIGHT));

Size videoSize(w, h);

VideoWriter
writer("RecordVideo.avi", CV_FOURCC('M', 'J', 'P', 'G'), 25,
videoSize);

Mat frame;

int key;//記錄鍵盤按鍵

char startOrStop = 1;//0 開始錄制視頻; 1 結(jié)束錄制視頻

char flag = 0;//正在錄制標志 0-不在錄制; 1-正在錄制

while (1)

{

cap >> frame;



  key = waitKey(100);



  if (key == 32)//按下空格開始錄制、暫停錄制   可以來回切換



  {



    startOrStop = 1 - startOrStop;



    if (startOrStop == 0)



    {



       flag = 1;



    }



  }



  if (key == 27)//按下ESC退出整個程序,保存視頻文件到磁盤



  {



    break;



  }







  if (startOrStop == 0 && flag==1)



  {



    writer << frame;



    cout << "recording"

<< endl;

}



  else if (startOrStop == 1)



  {



    flag = 0;



    cout << "end recording"

<< endl;

}



  imshow("picture", frame);

}

cap.release();

writer.release();

destroyAllWindows();

return 0;

}

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • PHYTEC
    +關(guān)注

    關(guān)注

    0

    文章

    19

    瀏覽量

    3704
  • 開發(fā)板試用
    +關(guān)注

    關(guān)注

    3

    文章

    301

    瀏覽量

    2194
收藏 0人收藏

    評論

    相關(guān)推薦

    NXP首款搭載MPU的FRDM產(chǎn)品怎么樣?FRDM i.MX93開發(fā)板開箱速覽

    近期,NXP將i.MX 93系列處理器引入了FRDM系列產(chǎn)品線,推出了FRDM i.MX 93開發(fā)板,作為首款配備i.MX MPU的FRDM
    的頭像 發(fā)表于 02-26 14:56 ?244次閱讀
    NXP首款搭載MPU的FRDM產(chǎn)品怎么樣?FRDM <b class='flag-5'>i.MX</b>93<b class='flag-5'>開發(fā)板</b>開箱速覽

    恩智浦推出FRDM i.MX 93開發(fā)板

    備受嵌入式開發(fā)者青睞的恩智浦FRDM開發(fā)平臺,迎來了一位新成員——FRDM i.MX 93開發(fā)板,這也是第一塊配備i.MX MPU的FRDM
    的頭像 發(fā)表于 02-21 14:22 ?343次閱讀

    NXP推出FRDM i.MX 93開發(fā)板, 助力現(xiàn)代工業(yè)與邊緣智能開發(fā)

    近日,恩智浦半導(dǎo)體(NXP Semiconductor)推出了FRDM i.MX 93開發(fā)板,這是FRDM系列中第一款基于MPU推出的開發(fā)板,以低成本、緊湊的設(shè)計為核心,搭載了NXP i.MX
    的頭像 發(fā)表于 02-21 09:19 ?428次閱讀
    NXP推出FRDM <b class='flag-5'>i.MX</b> 93<b class='flag-5'>開發(fā)板</b>, 助力現(xiàn)代工業(yè)與邊緣智能<b class='flag-5'>開發(fā)</b>

    【迅為電子】i.MX6UL和i.MX6ULL芯片區(qū)別與開發(fā)板對比

    【迅為電子】i.MX6UL和i.MX6ULL芯片區(qū)別與開發(fā)板對比
    的頭像 發(fā)表于 11-28 14:31 ?763次閱讀
    【迅為電子】<b class='flag-5'>i.MX</b>6UL和<b class='flag-5'>i.MX</b>6ULL芯片區(qū)別與<b class='flag-5'>開發(fā)板</b>對比

    i.MX Linux開發(fā)實戰(zhàn)指南—基于野火i.MX系列開發(fā)板

    電子發(fā)燒友網(wǎng)站提供《i.MX Linux開發(fā)實戰(zhàn)指南—基于野火i.MX系列開發(fā)板.pdf》資料免費下載
    發(fā)表于 10-10 17:23 ?12次下載

    使用TPS65219為i.MX 8M Plus供電

    電子發(fā)燒友網(wǎng)站提供《使用TPS65219為i.MX 8M Plus供電.pdf》資料免費下載
    發(fā)表于 08-31 10:15 ?0次下載
    使用TPS65219為<b class='flag-5'>i.MX</b> <b class='flag-5'>8M</b> <b class='flag-5'>Plus</b>供電

    i.MX 8M Plus中的ISP圖像信號處理模塊特性概述

    日常生活中,人類約80%的信息來自于視覺信息,而視覺信息的載體是數(shù)以億萬計的圖片和視頻流,因此如何打造高效而智能的視覺處理解決方案,是擺在開發(fā)者面前的重要課題。 恩智浦推出的i.MX 8M P
    的頭像 發(fā)表于 08-02 11:39 ?1462次閱讀

    2章_開發(fā)板使用

    本課程使用 ST-Link 給開發(fā)板供電、燒錄、調(diào)試
    的頭像 發(fā)表于 06-29 14:25 ?2901次閱讀
    第<b class='flag-5'>2</b>章_<b class='flag-5'>開發(fā)板</b>使用

    米爾基于NXP iMX.93開發(fā)板M33處理器應(yīng)用開發(fā)筆記

    1.概述本文主要介紹M33核的兩種工程調(diào)試開發(fā),第一種方式是通過板子自帶的固件進行開發(fā),第二種方式是使用IAREmbeddedWorkbench來構(gòu)建可移植的Freertos文件進行開發(fā)
    的頭像 發(fā)表于 06-29 08:01 ?1661次閱讀
    米爾基于NXP iMX.93<b class='flag-5'>開發(fā)板</b>的<b class='flag-5'>M</b>33處理器應(yīng)用<b class='flag-5'>開發(fā)</b>筆記

    PHYTEC AM62x開發(fā)板試用】開箱

    本帖最后由 如去如來 于 2024-6-27 12:28 編輯 收到PHYTEC AM62x開發(fā)板已經(jīng)兩周,忙于其他事情還沒來得及開箱測試,今天來補上。 自從1986年德國PHYTEC公司創(chuàng)立
    發(fā)表于 06-18 23:27

    點擊參與米爾NXP i.MX 93開發(fā)板有獎試用

    米爾與NXP合作發(fā)布的新品基于NXPi.MX93應(yīng)用處理器的MYD-LMX9X開發(fā)板免費試用活動來啦~~米爾提供了3塊價值678元的MYD-LMX9X開發(fā)板發(fā)起
    的頭像 發(fā)表于 06-13 08:02 ?669次閱讀
    點擊參與米爾NXP <b class='flag-5'>i.MX</b> 93<b class='flag-5'>開發(fā)板</b>有獎<b class='flag-5'>試用</b>

    米爾NXP i.MX 93開發(fā)板的Qt開發(fā)指南

    1.概述Qt是一個跨平臺的圖形應(yīng)用開發(fā)框架,被應(yīng)用在不同尺寸設(shè)備和平臺上,同時提供不同版權(quán)版本供用戶選擇。米爾NXPi.MX93開發(fā)板(MYD-LMX9X開發(fā)板)使用Qt6.5版本進行
    的頭像 發(fā)表于 06-07 08:01 ?1908次閱讀
    米爾NXP <b class='flag-5'>i.MX</b> 93<b class='flag-5'>開發(fā)板</b>的Qt<b class='flag-5'>開發(fā)</b>指南

    免費!NXP i.MX 93開發(fā)板有獎試用

    米爾與NXP合作發(fā)布的新品基于NXPi.MX93應(yīng)用處理器的MYD-LMX9X開發(fā)板免費試用活動來啦~~米爾提供了2塊價值678
    的頭像 發(fā)表于 05-23 08:01 ?849次閱讀
    免費!NXP <b class='flag-5'>i.MX</b> 93<b class='flag-5'>開發(fā)板</b>有獎<b class='flag-5'>試用</b>

    NXP系列-NXP i.MX 93核心開發(fā)板-入門級嵌入式核心-產(chǎn)品資料

    MYC-LMX9X核心開發(fā)板NXP i.MX 93重新定義入門級嵌入式CPU模組2*Cortex-A55@1.7GHz+Cortex-M
    發(fā)表于 04-23 11:07 ?5次下載

    fpga開發(fā)板是什么?fpga開發(fā)板有哪些?

    FPGA開發(fā)板是一種基于FPGA(現(xiàn)場可編程門陣列)技術(shù)的開發(fā)平臺,它允許工程師通過編程來定義和配置FPGA芯片上的邏輯電路,以實現(xiàn)各種數(shù)字電路和邏輯功能。FPGA開發(fā)板通常包括FPGA芯片、時鐘模塊、電源模塊、輸入輸出接口等組
    的頭像 發(fā)表于 03-14 18:20 ?2498次閱讀
    主站蜘蛛池模板: 久久精品国产亚洲AV妓女不卡 | 99久久精品免费精品国产 | 狠狠综合久久综合88亚洲 | 最近更新2019中文字幕免费 | 99视频全部看免费观 | 视频一区二区三区蜜桃麻豆 | 国产一浮力影院 | 久久本道久久综合伊人 | 日本十八禁无遮拦啪啪漫画 | 人妻 中文无码 中出 | 一点色成人 | 老阿姨儿子一二三区 | 97人摸人人澡人人人超一碰 | 99久久久国产精品免费调教 | 欧美香蕉大胸在线视频观看 | 综合色中色 | 渔夫床满艳史bd高清在线直播 | 狠狠色狠狠色综合曰曰 | 国产一卡在线观看完整版 | 精品国产乱码久久久久久夜深人妻 | 久久精品熟一区二区三区 | 囯产愉拍亚洲精品一区 | 一区二区三区国产亚洲网站 | 无颜之月5集全免费看无删除 | 午夜在线观看免费观看 视频 | 国产亚洲日韩在线播放不卡 | 粗好大用力好深快点漫画 | 久久本道久久综合伊人 | 国产精品久久久久久搜索 | 啊…嗯啊好深男男小黄文 | AAA级精品无码久久久国片 | 亚洲国产成人精品青青草原100 | www.中文字幕在线观看 | 亚洲精品乱码8久久久久久日本 | 伊人久久精品午夜 | 在线免费公开视频 | 果冻传媒2021精品影视 | 一区三区不卡高清影视 | 日本特黄的免费大片视频 | 男人边吃奶边摸边做刺激情话 | 18国产精品白浆在线观看免费 |

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會員交流學(xué)習(xí)
    • 獲取您個性化的科技前沿技術(shù)信息
    • 參加活動獲取豐厚的禮品