HALCON示例程序autobahn高速公路車道識別程序剖析

HALCON示例程序autobahn高速公路車道識別程序剖析

小哥哥小姐姐覺得有用點個贊唄!
在這里插入圖片描述

示例程序源碼(加注釋)

*關閉halcon窗口的實時更新
dev_update_window (‘off’)
*關閉halcon圖形窗口
dev_close_window ()
*打開圖形窗口
*dev_open_window (窗口起始坐標Y, 窗口起始坐標X, 窗口寬度, 窗口高度, 背景顏色, 窗口句柄)
/這個窗口句柄就是窗口的名字,我們在一個程序或者軟件中可能會打開好多個窗口(窗口1、窗口2、窗口。。。),現在我們希望在窗口5中顯示一張圖片,電腦怎么知道我們想顯示在哪里呢?就是通過不同窗口的窗口句柄得到的。使用方法很簡單,下面有顯示的算子使用,用到了會說一下。/
dev_open_window (0, 0, 768, 575, ‘black’, WindowID)
*halcon的賦值語句不是直接‘=’就OK了,要在‘=’前加一個‘:’
MinSize := 30
*獲取halcon系統的信息
get_system (‘init_new_image’, Information)
*設置halcon系統的信息
set_system (‘init_new_image’, ‘false’)
*gen_grid_region 創建一個由線條或像素構成的區域。
*函數原型gen_grid_region(:RegionGrid:RowSteps,ColumnSteps,Type,Width,Height ?
/算子gen_grid_region創建由線(Type =‘lines’)或像素(Type =‘points’)構成的網格。在’線’的情況下,返回連續的線,如果’點’只有線的交叉點。從像素(0,0)到像素(高度-1,寬度-1)開始,網格在行方向上的步進寬度RowSteps和列方向上的ColumnSteps構建。在“行”模式下,RowSteps,ColumnSteps分別可以設置為零。在這種情況下,僅分別創建列,行。/
gen_grid_region (Grid, MinSize, MinSize, ‘lines’, 512, 512)
*clip_region - 將區域剪切為矩形。
*clip_region(Region:RegionClipped:Row1,Column1,Row2,Column2 ?
/Region:要剪切的區域;RegionClipped:剪切完成的結果;Row1:起始Y;Column1:起始X;Row2:終止Y;Column2:終止X。/
clip_region (Grid, StreetGrid, 130, 10, 450, 502)
*設置顯示線寬
dev_set_line_width (3)
**設置顯示線的顏色
dev_set_color (‘green’)
*讀取圖片
*read_image (讀入圖片命名, ‘路徑’)
read_image (ActualImage, ‘autobahn/scene_00’)
*在窗口顯示剛剛讀入的圖片
dev_display (ActualImage)
*停止程序,為了方便看一下讀入圖片
stop ()
*顯示剛剛使用clip_region剪切過后的用gen_grid_region生成的網格
dev_display (StreetGrid)
stop ()
*halcon的for循環等同于
*for(i=0;i<28;i=i+1)
*{
*}
for i := 0 to 28 by 1
read_image (ActualImage, ‘autobahn/scene_’ + (i$‘02’))
*將圖片與區域求交集,減少圖片處理范圍的大小,可以使程序運行速度變快
*reduce_domain (圖片, 區域, 求交集后的圖片)
== reduce_domain (ActualImage, StreetGrid, Mask)==
*sobel_amp - 使用Sobel算子檢測邊緣
sobel_amp (Mask, Gradient, ‘sum_abs’, 3)
*選取邊緣檢測后的像素值在20-255的區域
threshold (Gradient, Points, 20, 255)
*dilation_rectangle1 - 使用矩形結構元素擴展區域。
dilation_rectangle1 (Points, RegionDilation, MinSize, MinSize)
*將拓展后的區域與讀入的原圖求交集
reduce_domain (ActualImage, RegionDilation, StripGray)
*選取像素值介于190-255的像素
threshold (StripGray, Strip, 190, 255)
*填充孔洞
fill_up (Strip, RegionFillUp)
*顯示
dev_display (ActualImage)
dev_display (RegionFillUp)
endfor
dev_set_line_width (1)
dev_update_window (‘on’)
set_system (‘init_new_image’, Information)

處理思路

在這個例子當中個人感覺對自己啟發最大的就是使用網格與圖像做交集從而進行快速的圖像處理。
首先利用車的前視視角區域大致固定這一特性創建定義域。為了減少路面的干擾加快處理速度又使用網格對圖像再進行一次壓縮。在處理過程中采用了Sobel算子檢測邊緣,之后進行簡單的閾值篩選得到邊緣。得到邊緣之后為了得到完整的白線的圖像進行了對選中的邊緣區域使用矩形元素進行膨脹,得到白線所在的區域。最后對區域進行簡單的二值化篩選就OK啦,這是一個非常非常簡單的例子,主要是處理思路慢慢學習的一個過程。

后記

大家有什么問題可以向我提問哈,我看到了第一時間回復,希望在學習的路上多多結交良師益友。

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

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

相關文章

CSS中的未定義行為,瀏覽器的差異(一)

今天看了張鑫旭大佬的新書的有感吧&#xff0c;記錄一下。 Web標準未對一些場景做出明確規范&#xff0c;所以各大瀏覽器廠家只能根據自己的理解和喜好去實現&#xff0c;表現差異不是瀏覽器的bug&#xff0c;用計算機領域的術語描述為"未定義行為"。 比如一個例子&a…

KVC 和 KVO

作者 沖破繭縛 2015.08.28 16:12* 寫了3967字&#xff0c;被8人關注&#xff0c;獲得了14個喜歡KVC 和 KVO 字數363 閱讀32 評論0 喜歡0KVC (Key Value Coding)&#xff0c;鍵值編碼&#xff0c;通過鍵值&#xff08;字符串&#xff09;來訪問屬性的機制&#xff0c;來間接修改…

Atmel megaAVR控制器 串行引導Bootloader

開始研究下Bootloader的代碼結構 2015.1.9 粗略看了下&#xff0c;Bootloader主要做了下板卡的初始化 -----> 然后進入for( ; ; )死循環 -----> 循環刷新串口數據 -----> 根據數據做出不同應答 -----> 如果有寫數據&#xff0c;則將數據存入buffer …

MapReduce入門2-流量監控

3、流量監控匯總&#xff08;使用LongWritable實現&#xff09; hdfs文件路徑&#xff1a;/tmp/flow.txt 查看文件內容&#xff1a; 13770759991 50 100 25 400 13770759991 800 600 500 100 13770759992 400 300 250 1400 13770759992 800 1200 600 900字符串含義&#xff1a;…

【fiddler學習問題記錄】——手機端證書下載頁打不開、無法將此證書安裝(已解決)

目錄 1、手機端下載頁打不開 解決方法1&#xff09;電腦端——將網絡設置成公用&#xff08;親測有效&#xff09; 解決方法2&#xff09;手機端將fiddler設置為信任應用&#xff0c;不被攔截 &#xff08;未試&#xff09; 2、無法將此證書安裝 方法一&#xff1a;修改證書…

HALCON示例程序ball電路板焊點識別、檢測、測量程序剖析

HALCON示例程序ball電路板焊點識別、檢測、測量程序剖析 示例程序源碼&#xff08;加注釋&#xff09; 介紹&#xff1a; ball.hdev: Inspection of Ball Bonding *halcon窗口實時更新關閉 dev_update_window (‘off’) *halcon關閉所有窗口 dev_close_window () *halcon打開…

舵機的原理和控制

控制信號由接收機的通道進入信號調制芯片&#xff0c;獲得直流偏置電壓。它內部有一個基準電路&#xff0c;產生周期為20ms&#xff0c;寬度為1.5ms的基準信號&#xff0c;將獲得的直流偏置電壓與電位器的電壓比較&#xff0c;獲得電壓差輸出。最后&#xff0c;電壓差的正負輸出…

HDFS清理壞塊

報錯 Failed with exception java.io.IOException:org.apache.hadoop.hdfs.BlockMissingException: Could not obtain block: BP-1921057509-192.168.57.129-1517160177567:blk_1073741930_1106 file/user/hive/warehouse/db_hive.db/student/student.txt Time taken: 0.104 se…

如何在PowerDesigner將PDM導出生成WORD文檔或者html文件

a) 使用PowerDesigner打開pdm文件 b) 點擊Report Temlates 制作模板 點擊PowerDesigner菜單欄“Report” -> “Report Templates” c) 選擇模板數據項 完成步驟a&#xff09;&#xff0c;得到如下界面&#xff0c;左右2個區&#xff0c;Aavailable區…

【軟件測試】——基礎篇(軟件測試技術體系、過程管理)

目錄 軟件測試技術體系 軟件測試過程管理?編輯 接口測試用例設計 手機端測試流程?編輯 軟件測試技術體系 軟件測試過程管理 接口測試用例設計 手機端測試流程

vue 的常用模塊安指令(持續記錄)

# 全局安裝 vue-cli $ cnpm install --global vue-cli# 創建一個基于 webpack 模板的新項目 $ vue init webpack my-project # 路由管理模塊 $ npm install vue-router --save # 狀態管理模塊 $ npm install vuex --save # 網絡請求模塊 $ npm install vue-resource --save # 停…

HALCON基于形狀匹配詳解

HALCON基于形狀的模板匹配詳細說明 很早就想總結一下前段時間學習HALCON的心得&#xff0c;但由于其他的事情總是抽不出時間。去年有過一段時間的集中學習&#xff0c;做了許多的練習和實驗&#xff0c;并對基于HDevelop的形狀匹配算法的參數優化進行了研究&#xff0c;寫了一…

俄羅斯:自由軟件在這里生根

2008年6月15日&#xff0c;我在“俄羅斯&#xff1a;自由軟件在這里起飛“一文中介紹了自由軟件在俄羅斯的發展情況。現在&#xff0c;許多年過去了&#xff0c;實際情況如何呢&#xff1f; 回顧以往&#xff0c;俄羅斯境內自由軟件的精英們&#xff0c;在2001年組建了ALTLinux…

小米出招黑科技,5S或成全球首款”Under glass“指紋識別手機

這一次&#xff0c;小米PK蘋果&#xff0c;小米勝。 不得不說&#xff0c;最近的手機圈真是熱鬧&#xff0c;繼三星Note 7爆炸、蘋果iPhone 7發布一度成為新聞熱點之后&#xff0c;小米又來暗戳戳地搶風頭了。 最近小米即將發布的兩款新旗艦消息扎堆&#xff0c;其中基本已經確…

sql中實現取得某字段中數字值

ALTER function [dbo].[GetNum](a nvarchar(4000)) returns nvarchar(4000) as begin while patindex(%[^0-9]%,a)>0 begin set astuff(a,patindex(%[^0-9]%,a),1,) end--select a --299 return a end 例如: 轉載于:https://www.cnblogs.com/fish-ycq/p/6433562.ht…

Java 中 String 的常用方法(二)

本文介紹剩下的一些常用的 String 中的方法。 1、replace 方法 、replaceFirst 方法和 replaceAll 方法 replace(char oldChar, char newChar)Returns a string resulting from replacing all occurrences of oldChar in this string with newChar. replace(CharSequence targe…

【adb錯誤修復】adb version(39) doesn‘t match the client(40),killing...

問題原因&#xff1a; 由于服務端的adb版本和客戶端的adb版本不一樣【哪個是客戶端哪個是服務端我也不清楚】 解決方法&#xff1a; adb kill-serveradb start-server

HALCON示例程序ball電路板焊點識別、檢測、測量程序2剖析(與上篇文章使用了不同方法)

HALCON示例程序ball電路板焊點識別、檢測、測量程序2 示例程序源碼&#xff08;加注釋&#xff09; *這是關于顯示的函數&#xff0c;已經介紹過了 dev_update_off () *定義一個字符串變量ImageNames&#xff0c;ImageNames[0]的含義為’die/die_02’以此類推 ImageNames : ‘…

arduino 程序的機制

從一個簡單的 arduino 程序說起&#xff1a; /*BlinkTurns on an LED on for one second, then off for one second, repeatedly.This example code is in the public domain.*/// Pin 13 has an LED connected on most Arduino boards. // give it a name: int led 13;// the…

電池技術多年沒有較大發展,成為移動設備最大制約

各大廠商致力于發展閃充技術以此解決電池續航問題。 對于電子產品來說&#xff0c;不管是什么&#xff0c;我們最頭疼的無疑就是電池問題了。而電池的重要性更是不用多說&#xff0c;但是&#xff0c;以目前的科技水平來看&#xff0c;就拿智能手機的CPU等功能來說&#xff0c…