精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

如何在OpenCV中實現光流呢?

冬至子 ? 來源:技術鋪子 ? 作者:chasenzhang ? 2023-01-18 15:19 ? 次閱讀

介紹

光流是由物體或照相機的運動引起的兩個連續幀之間圖像物體視在運動的模式。它是2D向量場,其中每個向量都是位移向量,顯示點從第一幀到第二幀的運動。

光流在以下領域有許多應用:

  • 運動結構
  • 視頻壓縮
  • 視頻穩定

光流的工作基于以下幾個假設:

  • 物體的像素強度在連續的幀之間不改變。
  • 相鄰像素具有相似的運動。

實現

在OpenCV中實現光流的步驟

1 查找一些關鍵點

在例子中我們用goodFeaturesToTrack函數來查找關鍵點。函數原型:

void cv::goodFeaturesToTrack( InputArray _image, OutputArray _corners,
                              int maxCorners, double qualityLevel, double minDistance,
                              InputArray _mask, int blockSize,
                              bool useHarrisDetector, double harrisK )

2 迭代跟蹤這些點

例子中用calcOpticalFlowPyrLK來計算光流。函數原型:

void cv::calcOpticalFlowPyrLK( InputArray _prevImg, InputArray _nextImg,
                               InputArray _prevPts, InputOutputArray _nextPts,
                               OutputArray _status, OutputArray _err,
                               Size winSize, int maxLevel,
                               TermCriteria criteria,
                               int flags, double minEigThreshold )

根據我的理解,在當前幀查找一些關鍵點,然后根據這些關鍵點,在下一幀進行匹配,得到這些點在下一幀的位置。這樣就得到了了一組向量,表示了當前幀和下一幀之前點的移動,也就實現了對一些物體的跟蹤。

官方例子

#include 
#include 
#include 
#include 
#include 
#include 


using namespace cv;
using namespace std;


int main(int argc, char **argv)
{
    const string about =
        "This sample demonstrates Lucas-Kanade Optical Flow calculation.\\n"
        "The example file can be downloaded from:\\n"
        "  https://www.bogotobogo.com/python/OpenCV_Python/images/mean_shift_tracking/slow_traffic_small.mp4";
    const string keys =
        "{ h help |      | print this help message }"
        "{ @image | vtest.avi | path to image file }";
    CommandLineParser parser(argc, argv, keys);
    parser.about(about);
    if (parser.has("help"))
    {
        parser.printMessage();
        return 0;
    }
    string filename = samples::findFile(parser.get

運行結果截圖

2.jpg

審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • OpenCV
    +關注

    關注

    30

    文章

    628

    瀏覽量

    41274
  • python
    +關注

    關注

    56

    文章

    4783

    瀏覽量

    84473
  • printf函數
    +關注

    關注

    0

    文章

    31

    瀏覽量

    5880
收藏 人收藏

    評論

    相關推薦

    何在OpenCV中使用基于深度學習的邊緣檢測?

    在這篇文章,我們將學習如何在OpenCV中使用基于深度學習的邊緣檢測,它比目前流行的canny邊緣檢測器更精確。
    的頭像 發表于 05-19 09:52 ?2049次閱讀
    如<b class='flag-5'>何在</b><b class='flag-5'>OpenCV</b>中使用基于深度學習的邊緣檢測?

    ELF 1技術貼|如何在Ubuntu編譯OpenCV

    在之前發布的文章探討了交叉編譯OpenCV并部署至嵌入式系統的方法。然而,在調試階段,我們發現在Ubuntu環境下將OpenCV編譯為X86架構可能更加方便和高效。通過在主機上編譯并使用X86架構
    的頭像 發表于 05-31 16:41 ?1139次閱讀
    ELF 1技術貼|如<b class='flag-5'>何在</b>Ubuntu<b class='flag-5'>中</b>編譯<b class='flag-5'>OpenCV</b>庫

    【教程】通俗講法告訴你什么是Optical Flow,附算法

    學者重視。 還是回歸應用吧,目前OpenCV實現了不少的算法。1. calcOpticalFlowPyrLK通過金字塔Lucas-Ka
    發表于 06-02 17:18

    何在STM32上去搭建一種硬件

    為什么需要控?控的作用是什么?如何在STM32上去搭建一種硬件
    發表于 12-07 06:38

    何在RK3288上去安裝Opencv開源計算機視覺庫

    Opencv是什么?如何在RK3288上去安裝Opencv開源計算機視覺庫
    發表于 02-16 07:06

    何在STM32上搭建硬件

    為什么需要控?一般常用的控方式有幾種?如何在STM32上搭建硬件
    發表于 02-18 06:19

    何在RK3288上安裝Opencv

    何在RK3288上安裝Opencv
    發表于 03-10 06:49

    OpenCV的BGR格式,在libyuv對應的那個格式?OpenCV的RGB格式

    OpenCV的BGR格式,在libyuv對應的那個格式?OpenCV的RGB格式
    發表于 09-19 06:00

    何在開發環境的Python環境下使用我們提供的BM-OpenCV?

    何在開發環境的Python環境下使用我們提供的BM-OpenCV?
    發表于 09-19 07:14

    在Vivado如何實現OpenCV設計

    觀看視頻,了解OpenCV庫和其在一些典型應用的使用,以及Zynq-7000 SoC的優點和如何實現OpenCV設計。同時您還能學習到如何在
    的頭像 發表于 11-20 06:46 ?3907次閱讀

    OpenCV庫的特點和主要功能及實現方法的運動說明

    序列圖像的計算是計算機視覺研究領域運動估計的重要組成部分。本文介紹了OpenCV庫的特點和主要功能,通過調用函數庫的金字塔Lucas—Kanade
    發表于 10-15 11:56 ?12次下載
    <b class='flag-5'>OpenCV</b>庫的特點和主要功能及<b class='flag-5'>實現</b><b class='flag-5'>光</b><b class='flag-5'>流</b>方法的運動說明

    OpenCV庫的特點和功能與如何快速實現場的方法說明

    序列圖像的計算是計算機視覺研究領域運動估計的重要組成部分。本文介紹了0PenCV庫的特點和主要功能,通過調用函數庫的金字塔Lucas-Kanade
    發表于 10-31 11:53 ?3次下載
    <b class='flag-5'>OpenCV</b>庫的特點和功能與如何快速<b class='flag-5'>實現</b><b class='flag-5'>光</b><b class='flag-5'>流</b>場的方法說明

    奧比OpenCV成為戰略合作伙伴

    近日,奧比OpenCV(OpenSource Computer Vision Library)簽署《戰略合作協議》,雙方正式成為戰略合作伙伴。OpenCV5.0規劃納入3D視覺技
    的頭像 發表于 09-25 16:22 ?2594次閱讀

    OpenCV Webinar 2丨如何在OpenCV調用Tengine推理,實現開發效率翻倍

    這個月,OPEN AI LAB的合作伙伴OpenCV 20歲了!值此之際,OpenCV中國團隊推出系列OpenCV Webinar,在全球范圍內定期邀請OpenCV專家來作...
    發表于 01-26 19:48 ?3次下載
    <b class='flag-5'>OpenCV</b> Webinar 2丨如<b class='flag-5'>何在</b><b class='flag-5'>OpenCV</b><b class='flag-5'>中</b>調用Tengine推理,<b class='flag-5'>實現</b>開發效率翻倍

    何在OpenCV實現CUDA加速

    OpenCV4.x關于CUDA加速的內容主要有兩個部分,第一部分是之前OpenCV支持的圖像處理與對象檢測傳統算法的CUDA加速;第二部分是OpenCV4.2版本之后開始支持的針對深
    的頭像 發表于 09-05 10:03 ?5018次閱讀