車流檢測之halcon光流法算法實現

* This example program shows how to use optical_flow_mg to compute the optical flow in an image sequence and how to segment the optical flow.

*這個示例程序顯示了如何使用._flow_mg來計算圖像序列中的光流,以及如何分割光流。

dev_update_off ()

dev_close_window ()

* Initialize the image sequence.

初始化圖像序列

read_image (Image1, 'xing/xing000')

dev_open_window_fit_image (Image1, 0, 0, -1, -1, WindowHandle)

* Set the display parameters for the vector field.

設置現實的矢量場參數

dev_set_paint (['vector_field',6,1,2])

定義灰度值輸出模型,

dev_set_draw ('margin')

for I := 1 to 587 by 1

? ? * Read the current image of the image sequence.

? ? ?讀連續的圖像序列

? ? read_image (Image2, 'xing/xing'+I$'03')

? ? * Compute the optical flow.

? ? ? 計算光流

? ? optical_flow_mg (Image1, Image2, VectorField, 'fdrig', 0.8, 1, 8, 5, 'default_parameters', 'accurate')

*計算兩幅圖片的光流場。

參數:1&2是輸入的兩個單色圖片序列的連續圖片,

??????????? 3為輸出的光流結果

? ? ? ? ? ?4是求取光流三種算法的選取其中的一種

? ? ? ? ? ?5高斯平滑初始偏差初始值

? ? ? ? ? ?6積分濾波偏差初始值

? ? ? ? ? ?7平滑項在數據項中的權重

? ? ? ? ? ?8梯度恒定性相對于灰度值恒定性的權重

? ? ? ? ? ?9多柵算法的名字

? ? ? ? ? 10多柵算法的變量?

? ? * Segment the optical flow vector field.

? ? 分割矢量場

? ? threshold (VectorField, Region, 1, 10000)

? ? * Display the current image of the sequence.? Note that this means that the optical flow vectors will also be displayed at the "end" of the movementof the objects in the image.

? ? 顯示序列的當前圖像。注意,這意味著光流矢量也將顯示在圖像中物體運動的“末端”。

? ? dev_display (Image2)

? ? * Display the optical flow.

? ? dev_set_color ('yellow')

? ? dev_set_line_width (1)

? ? dev_display (VectorField)

? ? * Display the segmented optical flow.

? ? dev_set_color ('green')

? ? dev_set_line_width (3)

? ? dev_display (Region)

? ? * Copy the current image to the previous image of the sequence.

? ? *將當前圖像復制到序列的前一個圖像。

? ? copy_obj (Image2, Image1, 1, 1)

endfor

?

背景介紹

?

光流的概念是Gibson在1950年首先提出來的。它是空間運動物體在觀察成像平面上的像素運動的瞬時速度,是利用圖像序列中像素在時間域上的變化以及相鄰幀之間的相關性來找到上一幀跟當前幀之間存在的對應關系,從而計算出相鄰幀之間物體的運動信息的一種方法。一般而言,光流是由于場景中前景目標本身的移動、相機的運動,或者兩者的共同運動所產生的。

當人的眼睛觀察運動物體時,物體的景象在人眼的視網膜上形成一系列連續變化的圖像,這一系列連續變化的信息不斷“流過”視網膜(即圖像平面),好像一種光的“流”,故稱之為光流(optical flow)。光流表達了圖像的變化,由于它包含了目標運動的信息,因此可被觀察者用來確定目標的運動情況。

研究光流場的目的就是為了從圖片序列中近似得到不能直接得到的運動場。運動場,其實就是物體在三維真實世界中的運動;光流場,是運動場在二維圖像平面上(人的眼睛或者攝像頭)的投影。

那通俗的講就是通過一個圖片序列,把每張圖像中每個像素的運動速度和運動方向找出來就是光流場。那怎么找呢?咱們直觀理解肯定是:第t幀的時候A點的位置是(x1, y1),那么我們在第t+1幀的時候再找到A點,假如它的位置是(x2,y2),那么我們就可以確定A點的運動了:(ux, vy) = (x2, y2) - (x1,y1)。

? ? ? ? 那怎么知道第t+1幀的時候A點的位置呢? 這就存在很多的光流計算方法了。

1981年,Horn和Schunck創造性地將二維速度場與灰度相聯系,引入光流約束方程,得到光流計算的基本算法。人們基于不同的理論基礎提出各種光流計算方法,算法性能各有不同。Barron等人對多種光流計算技術進行了總結,按照理論基礎與數學方法的區別把它們分成四種:基于梯度的方法、基于匹配的方法、基于能量的方法、基于相位的方法。近年來神經動力學方法也頗受學者重視。



作者:來套煎餅果子
鏈接:https://www.jianshu.com/p/f91a8a519a50
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯系作者獲得授權并注明出處。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/458082.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/458082.shtml
英文地址,請注明出處:http://en.pswp.cn/news/458082.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

利用光學流跟蹤關鍵點---30

原創博客:轉載請標明出處:http://www.cnblogs.com/zxouxuewei/ 關鍵點:是多個方向上亮度變化強的區域。 opencv:版本是2.4. 光學流函數:calcOpticalFlowPyrLK()。(關鍵點偵測器使用goodFeaturesToTrack())二者結合。 相應的啟動文…

基于Redis、Storm的實時數據查詢實踐

通過算法小組給出的聚合文件,我們需要實現一種業務場景,通過用戶的消費地點的商戶ID與posId,查詢出他所在的商圈,并通過商圈地點查詢出與該區域的做活動的商戶,并與之進行消息匹配,推送相應活動信息到用戶手…

從離散值中把值相近的放在一起

//30根細條得到30個長度值&#xff0c;選擇出現值相近且出現次數最多的&#xff0c;算其均值作為輸出 #include <iostream> using namespace std;int main() {double dRawdata[5] {1.1,1.2,1.3,2.5,3.2};//先升序排序double dSort[5][5] {0};double* p dRawdata;int a…

register_globals(全局變量注冊開關)

register_globals&#xff0c;是php.ini文件里面的一個配置選項&#xff0c;接下來&#xff0c;我們可以通過例程來分析一下&#xff0c;當register_globals on 與 register_globals off 的時候&#xff0c;對php語言的一些安全影響。測試源代碼如下&#xff1a;index.html 源…

精述IBM的MQTT協議和MQTT-S協議

一&#xff0e;MQTT簡介 MQTT (Message Queuing Telemetry Transport) 是由IBM研發的構建在TCP/IP之上的簡單輕量的消息協議&#xff0c;目標使用場景為受限制環境&#xff0c;如低帶寬、高延遲、不可靠網絡&#xff0c;很適用于M2M和IoT中。它的競爭協議包括XMPP協議和IETF的C…

20150103--SQL連接查詢+視圖-02

20150103--SQL連接查詢視圖-02 子查詢 一條查詢語句出現在另外一條查詢語句的內部&#xff0c;這條語句就被稱之為子查詢語句。 子查詢分類 子查詢可以根據子查詢返回的結果以及子查詢出現的位置兩種方式進行分類 按結果分類&#xff1a; 標量子查詢&#xff1a;子查詢返回的結…

QtQuick controls和controls2 自定義樣式

2019獨角獸企業重金招聘Python工程師標準>>> controls import QtQuick 2.7 import QtQuick.Controls 1.4 import QtQuick.Controls.Styles 1.4Rectangle {color: "green"Button {id:buttontext: qsTr("Second page")anchors.centerIn: parentpr…

電腦開機3秒就重啟循環_電腦修好后客戶不愿支付上門費,行,那電腦開機60秒自動關機吧!...

上門維修電腦已經非常普及了&#xff0c;上門維修電腦費用要比送修(送到維修店)費用高&#xff0c;送修電腦只有一項維修費用&#xff0c;上門維修電腦比送修多了一項費用&#xff0c;這項費用就是上門費。有人說維修電腦收取上門費用不合理&#xff0c;其實這樣的說法非常自私…

jQuery屬性篩選選擇器

2019獨角獸企業重金招聘Python工程師標準>>> 代碼一 <h2>屬性篩選選擇器</h2><h3>[attval]、[att]、[att|val]、[att~val]</h3><div class"left" testattr"true" ><div class"div" testattr"t…

java 代碼優化

Java程序中的內存管理機制是通過GC完成的&#xff0c;“一個對象創建后被放置在JVM的堆內存中&#xff0c;當永遠不在應用這個對象的時候將會被JVM在堆內存中回收。被創建的對象不能再生&#xff0c;同時也沒有辦法通過程序語句釋放”&#xff08;這個是《Java的GC機制》中提到…

Halcon中OCR的實現及關鍵函數解析

OCR的實現共分為兩步&#xff0c;1是使用字符數據來訓練OCR。2是使用OCR進行字符的識別。 訓練分類器 訓練分類器共分為4步&#xff1a; 1是使用閾值來分割字符區域&#xff1b; 2是調用append_ocr_trainf函數將字符加入訓練集&#xff1b; 3是創建分類器&#xff1b; 4是…

MATLAB 長度和像素_Matlab中短時傅里葉變換 spectrogram和stft的用法

在Matlab中&#xff0c;做短時傅里葉變換需要使用函數spectrogram&#xff0c;而在Matlab2019中&#xff0c;引入了一個新的函數stft&#xff0c;下面我們就來看下這兩個函數都如何使用。短時傅里葉變換的基本原理就是將數據分段加窗&#xff0c;做fft&#xff0c;在分段時會有…

Qt 【關于控件樣式,鼠標進入、離開、點擊】

比如舉以下這個例子: QPushButton * okBtn; okBtn->setstylesheet("QPushButton{border-image:url(:/image/hello);}"); //這個是最常規的樣式 okBtn->setstylesheet("QPushButton{border-image:url(:/image/hello);}" //…

圖像處理基礎——灰度共生矩陣

標準定義如下&#xff1a;對于取定的方向θ 和距離 d, 在方向為θ的直線上, 一個像元灰度為 i, 另一個與其相距為 d 像元的灰度為 j 的點對出現的頻數即為灰度共生矩陣第(i, j)陣元的值。 怎樣理解呢&#xff1f;看起來好復雜呀 嗚嗚嗚 小白理解&#xff1a;灰度共生矩陣就…

iphone查看刪除的短信_iPhone12發布!剛買的蘋果手機短信全部消失了怎么辦?

原標題&#xff1a;iPhone12發布&#xff01;剛買的蘋果手機短信全部消失了怎么辦&#xff1f;目前&#xff0c;人們的社交除了面對面交談&#xff0c;用的最多的就是通過手機進行聊天&#xff0c;比如用QQ、微信和短信、郵件等方式&#xff0c;雖然短信不會用來一般的聊天&…

[唐詩]182宮中行樂詞(其一)-李白

宮中行樂詞(其一)-李白 小小生金屋&#xff0c; 盈盈在紫微。 山花插寶髻&#xff0c; 石竹繡羅衣。 每出深宮里&#xff0c; 常隨步輦歸。 只愁歌舞散&#xff0c; 化作彩云飛。

python基礎之01數據類型-變量-運算淺解

python的數據類型 1 數字 數字分為整型&#xff08;int&#xff09;&#xff0c;長整型&#xff08;long&#xff09;&#xff0c;浮點型&#xff08;float&#xff09;&#xff0c;復數&#xff08;complex&#xff09; 整型較為常用的功能&#xff1a; >>> a-4 >…

使用Caffe進行手寫數字識別執行流程解析

之前在 http://blog.csdn.net/fengbingchun/article/details/50987185 中仿照Caffe中的examples實現對手寫數字進行識別&#xff0c;這里詳細介紹下其執行流程并精簡了實現代碼&#xff0c;使用Caffe對MNIST數據集進行train的文章可以參考 http://blog.csdn.net/fengbingchun/…

obs可以裝手機嗎?_原神PC和手機數據互通嗎 PC和手機可以一起玩嗎

在原神中&#xff0c;很多玩家都在PC端創建了角色&#xff0c;那么疑問來了&#xff0c;PC端與手機端的賬號會是互通的嗎&#xff1f;下面小編就為大家帶來原神PC和手機數據互通嗎的相關內容&#xff0c;一起來看看吧&#xff01;更多攻略&#xff1a;原神攻略大全PC和手機數據…

學習linux第二周作業

第二周作業&#xff1a;本周作業內容&#xff1a;1、Linux上的文件管理類命令都有哪些&#xff0c;其常用的使用方法及其相關示例演示。touch,rm,mv,cp,file,ls,chmod,chown,ln,rename,touch 修改文件atime&#xff0c;如果文件不存在&#xff0c;那么創建該文件。rm&#xff1…