<strike id="kiyse"></strike>
  • <tr id="kiyse"></tr>
  • <strike id="kiyse"></strike><samp id="kiyse"><tbody id="kiyse"></tbody></samp>
    <strike id="kiyse"><s id="kiyse"></s></strike>
    <tr id="kiyse"></tr>
    <noframes id="kiyse"><code id="kiyse"></code></noframes>
    <th id="kiyse"></th>
    <samp id="kiyse"></samp>
  • <th id="kiyse"><s id="kiyse"></s></th>
  • 英創(chuàng)Linux主板支持OpenCV

     2022-8-19     作者:黃志超         

    OpenCV(Open Source Computer Vision Library)是一個跨平臺的計算機視覺開源庫,其中包含了數(shù)百種計算機視覺算法。因此OpenCV提供的功能十分豐富,從圖像處理(比如圖片格式的轉(zhuǎn)換),到計算機視覺(比如動作識別,人臉識別等),都可以通過OpenCV來實現(xiàn)。所以O(shè)penCV在各個領(lǐng)域中都有較廣泛的應用,更加詳細的說明可以參考OpenCV的中文網(wǎng)站http://www.opencv.org.cn/


    英創(chuàng)公司在Linux主板中移植了OpenCV,能夠支持的主板有ESM6800E/H,ESM7000,ESM6802以及ESM8000系列的主板。其中ESM6800E/H和ESM7000系列主板中沒有GPU和VPU,所以比較適合進行圖像的處理,比如圖片的分割、格式轉(zhuǎn)化等。而ESM6802與ESM8000系列主板帶有GPU與VPU,可以做一些簡單的視頻方面的處理,比如人臉偵測、動作識別等。具體可以參考下面的表格:

    主板型號CPU性能GPUVPUOpenCV版本支持語言推薦應用
    ESM6800E/H

    Crotex-A7 主頻798MHz

    3.2C++可以用于圖像處理
    ESM6802系列

    雙核Crotex-A 主頻1GHz

    3.2C++可以用于簡單的視頻處理
    ESM7000系列

    雙核Crotex-A 主頻1GHz

    3.2C++可以用于圖像處理
    ESM8000系列

    四核64位Crotex-A53 主頻1.6GHz

    4.2

      C++/python3

    可以用于簡單的視頻處理


    關(guān)于圖像處理,可以通過調(diào)用OpenCV提供的API來實現(xiàn),比較簡單。而在視頻的處理上,主板中OpenCV的視頻操作都是基于Gstreamer來實現(xiàn)的,具體可以參考下圖:

    image.png


    從圖中可以看出,OpenCV的提供的Video I/O可以基于多種Backends,而主板中的Backends支持的是Gstreamer。因為Gstreamer中已經(jīng)包含了可以調(diào)用GPU和VPU的插件,對用戶來說就可以不必關(guān)心如何去調(diào)用GPU與VPU,只需要做上層的應用開發(fā),使用起來會更加簡單。因為OpenCV的跨平臺性,而基于Opencv實現(xiàn)的一些開源算法,比如人臉識別,動作識別等,都可以直接移植到主板上使用。


    最后是關(guān)于顯示界面的問題,OpenCV中提供了顯示的API,在Linux主板中,調(diào)用顯示API后可以顯示出一個OpenCV的窗口(底層是基于Qt實現(xiàn)的)。但是對于用戶來說,通常情況下OpenCV只是其中一部分功能,在顯示界面上可能還需要顯示一些其他的數(shù)據(jù),這個時候就推薦客戶使用Qt+OpenCV的方式來實現(xiàn)。Qt實現(xiàn)基本的界面顯示,而OpenCV用于處理圖像或者視頻,處理好的數(shù)據(jù)再通過Qt的控件顯示出來。


    我們以在ESM8000主板上顯示網(wǎng)絡(luò)攝像頭的畫面為例,來進行演示。下面的代碼可以通過OpenCV提供的API實現(xiàn)一個窗口來顯示網(wǎng)絡(luò)攝像頭的畫面:

    #include <opencv2/opencv.hpp>  
      
    int main() {  
       cv::VideoCapture cap;  
       /* gstreamer 參數(shù) */  
       if (!cap.open("rtspsrc location=rtsp://user:passwd@ip:port/ latency=0 ! queue ! rtph264depay ! vpudec ! queue ! imxvideoconvert_g2d ! capsfilter caps=\"video/x-raw,format=(string)RGBA\" ! videoconvert ! queue ! appsink sync=false", cv::CAP_GSTREAMER)) {  
            std::cout << "Unable to open video capture\n";  
            return -1;  
        }  
       return 0; */  
      
        while(true) {  
            cv::Mat frame;  
      
            /* 獲取顯示數(shù)據(jù) */  
            auto ret = cap.grab();  
            cap >> frame;  
      
            if (frame.empty()) {  
                break; // End of video stream  
            }  
      
            cv::resize(frame, frame, cv::Size(640, 480));  
      
            // Do other stuff here with frame  
      
            /*  顯示 */  
            cv::imshow("frame", frame);  
      
            if (cv::waitKey(10) == 27) {  
                break; // stop capturing by pressing ESC  
            }  
        }  
      
        return 0;  
    }


    通過代碼可以看到,在調(diào)用cv::imshow("frame", frame)后,就會顯示一個窗口出來。但是這是OpenCV提供的顯示窗口,只會顯示視頻數(shù)據(jù),如果用戶需要顯示其他數(shù)據(jù),就不方便了。這個時候就可以選擇使用Qt的控件來顯示讀取到的frame,可以參考下面的代碼來替換cv::imshow("frame", frame)函數(shù):

    /* 轉(zhuǎn)換格式 */   
    cv::cvtColor(frame, frame, cv::COLOR_BGR2RGB);  
      
    /* 通過Qt控件來顯示 */   
    QPixmap pix = QPixmap::fromImage(QImage((unsigned char*) frame.data, frame.cols, frame.rows, QImage::Format_RGB888));  
    label->setPixmap(pix);


    上面的代碼中,將OpenCV讀取的數(shù)據(jù)通過一個label顯示出來。基于這種方式,用戶可以更加靈活地設(shè)計界面,然后指定一個控件用于顯示視頻數(shù)據(jù):

    image.png


    本文簡單介紹了Linux主板對OpenCV的支持,感興趣的客戶可以通過聯(lián)系英創(chuàng)公司的工程師獲取更多的資料和例程。

    99视频精品全部在线观看| 国产精品白丝AV嫩草影院| 久久精品国产精油按摩| 亚洲精品无码少妇30P| 中文无码精品一区二区三区| 精品国产一区二区三区AV| 久久er这里只有精品| 亚洲国产主播精品极品网红 | 99在线观看精品视频| 凹凸国产熟女精品视频app| 国产精品久久新婚兰兰| 久热这里只有精品12| 久久er国产精品免费观看8| WWW夜片内射视频日韩精品成人| 人人妻人人澡人人爽精品日本| 中日欧洲精品视频在线| 国产精品入口麻豆电影网| 国产国产成人精品久久| 亚洲精品国产成人片| 国产精品热久久无码av| 韩国精品一区视频在线播放| 国内精品九九久久精品| 国产精品三级av及在线观看| 久久精品中文字幕首页| 国产精品无打码在线播放| 国产麻豆va精品视频| 亚洲综合精品第一页| 久视频精品免费观看99| 久久亚洲精品AB无码播放| 91精品国产91久久综合| 亚洲国产精品自产在线播放| 国产精品成人免费综合| 亚洲国产午夜精品理论片在线播放| 亚洲欧洲精品久久| 伊人久久大香线蕉精品| 久久精品国产96精品亚洲| 国产精品亚韩精品无码a在线| 精品久久久久久国产三级| 亚洲精品国产成人影院| 精品一区二区三区在线播放 | 国产精品污WWW一区二区三区|