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

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(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)用程序,

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

第三個大目標(biāo)是將程序移植到開發(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擴(kuò)展插件,這個很重要,下載好插件后需要在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ā)板上進(jìn)行測試,如果你使用的是筆記本自帶的攝像頭,這個時候多多少少會有些問題,另外,最好先關(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; //獲取攝像頭當(dāng)前幀

};

#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安裝非常詳細(xì),可以參考,之后的具體開發(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)重新擴(kuò)展的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;//正在錄制標(biāo)志 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

    瀏覽量

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

    關(guān)注

    3

    文章

    301

    瀏覽量

    2107
收藏 人收藏

    評論

    相關(guān)推薦

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

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

    【RA8D1試用活動】RA8D1B-CPKCOR開發(fā)板移植linux

    【RA8D1試用活動】RA8D1B-CPKCOR開發(fā)板移植linux
    的頭像 發(fā)表于 11-16 01:02 ?253次閱讀
    【RA<b class='flag-5'>8</b>D1<b class='flag-5'>試用</b>活動】RA<b class='flag-5'>8</b>D1B-CPKCOR<b class='flag-5'>開發(fā)板</b>移植linux

    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 ?11次下載

    198元,米爾NXP i.MX 93開發(fā)板,限購300套

    米爾NXPi.MX93開發(fā)板憑借其卓越的性能、強勁的推理能力以及豐富的接口資源,在眾多行業(yè)應(yīng)用中都得到了廣泛認(rèn)可,為回饋廣大行業(yè)客戶的支持與厚愛,進(jìn)一步激發(fā)開發(fā)者的創(chuàng)新潛能,共同推動技術(shù)的發(fā)展與進(jìn)步
    的頭像 發(fā)表于 09-27 08:00 ?374次閱讀
    198元,米爾NXP <b class='flag-5'>i.MX</b> 93<b class='flag-5'>開發(fā)板</b>,限購300套

    使用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 ?1287次閱讀

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

    本課程使用 ST-Link 給開發(fā)板供電、燒錄、調(diào)試
    的頭像 發(fā)表于 06-29 14:25 ?2234次閱讀
    第<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ā),第一種方式是通過板子自帶的固件進(jìn)行開發(fā),第二種方式是使用IAREmbeddedWorkbench來構(gòu)建可移植的Freertos文件進(jìn)行開發(fā)
    的頭像 發(fā)表于 06-29 08:01 ?1390次閱讀
    米爾基于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 ?553次閱讀
    點擊參與米爾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版本進(jìn)行
    的頭像 發(fā)表于 06-07 08:01 ?1756次閱讀
    米爾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 ?738次閱讀
    免費!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 ?4次下載

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

    FPGA開發(fā)板是一種基于FPGA(現(xiàn)場可編程門陣列)技術(shù)的開發(fā)平臺,它允許工程師通過編程來定義和配置FPGA芯片上的邏輯電路,以實現(xiàn)各種數(shù)字電路和邏輯功能。FPGA開發(fā)板通常包括FPGA芯片、時鐘模塊、電源模塊、輸入輸出接口等組
    的頭像 發(fā)表于 03-14 18:20 ?2050次閱讀

    fpga開發(fā)板與linux開發(fā)板區(qū)別

    FPGA開發(fā)板與Linux開發(fā)板是兩種不同的硬件開發(fā)平臺,各自具有不同的特點和應(yīng)用場景。在以下的文章中,我將詳細(xì)介紹FPGA開發(fā)板和Linux開發(fā)板
    的頭像 發(fā)表于 02-01 17:09 ?2288次閱讀
    主站蜘蛛池模板: 国产精品欧美一区二区在线看| 美女被强奷到抽搐的动态图| WWW国产色情在线观看APP| 亚洲综合AV色婷婷五月蜜臀| 亚洲精品中文字幕一二三四区| 亚洲黄色在线视频| 亚洲女人网| 亚洲一卡二卡三卡四卡2021麻豆| 亚洲在线无码免费观看| 99久久国产露脸精品国产吴梦梦| yellow免费观看直播| 荡乳乱公小说| 国产精品午夜福利在线观看| 黑人巨茎大战白人女40CMO| 久久99热成人精品国产| 久久亚洲伊人| 欧美videqsdesex0| 色 花 堂 永久 网站| 她也色在线视频站| 亚洲精品久久久午夜福利电影网 | 婷婷五月久久精品国产亚洲| 在线观看视频中文字幕| 97国产视频| 俄罗斯女肥臀大屁BBW| 国产亚洲精品久久久久久国 | 粗壮挺进邻居人妻无码| 精品国产mmd在线观看| 男人J桶进男人屁股过程| 三级黄色视屏| 88福利视频| 国内精品免费视频精选在线观看| 久久这里只有精品无码3D| 强奷漂亮女老板在线播放| 香蕉AV福利精品导航| 一区二区三区内射美女毛片| 99C视频色欲在线| 丰满的女朋友 在线播放| 老师的丝袜脚| 四房播播最新地址| 尤物久久99国产综合精品| bbw极度另类孕妇|