gogogo免费高清在线观看 韩国_人妻饥渴偷公乱中文字幕_女人被添荫蒂潮喷视频_欧美国产日韩久久mv_亚洲一区 日韩精品 中文字幕_欧美日本道免费二区三区_精品国产乱子伦一区二区三区_琪琪伦伦影院理论片_大地资源高清在线观看免费新浪

深圳市凱茉銳電子科技有限公司深圳市凱茉銳電子科技有限公司

新聞中心

News

快速車道標記檢測算法【附數(shù)據(jù)集與注釋代碼】

來源:深圳市凱茉銳電子科技有限公司2025-06-23

在自動駕駛和智能交通系統(tǒng)中,車道標記識別是關鍵的計算機視覺任務之一。本文將介紹一個基于Halcon的車道標記檢測算法,該算法通過圖像處理技術(shù)快速識別車道標記。

1. 系統(tǒng)初始化和窗口設置

在算法的開始,我們首先需要進行一些系統(tǒng)的初始化操作并設置顯示窗口。這些步驟為后續(xù)的圖像處理和結(jié)果展示奠定了基礎。

dev_update_window ('off')  
* 關閉窗口更新
dev_close_window ()  
* 關閉窗口
dev_open_window (0, 0, 768, 575, 'black', WindowID)  
* 打開一個新的黑色背景窗口,大小為768x575
MinSize := 30  
* 最小區(qū)域大小設定為30
get_system ('init_new_image', Information)  
* 獲取系統(tǒng)參數(shù),初始化新圖像信息
set_system ('init_new_image', 'false')  
* 設置系統(tǒng)參數(shù),禁止初始化新圖像

在上述代碼中,我們通過dev_open_window打開了一個新的窗口,用于展示后續(xù)的圖像處理結(jié)果。窗口背景為黑色,尺寸為768x575。然后,我們設置了一個最小的區(qū)域大小MinSize,并獲取了系統(tǒng)的圖像初始化參數(shù)。

2. 創(chuàng)建網(wǎng)格區(qū)域并裁剪圖像

為了有效識別車道標記,我們首先需要創(chuàng)建一個網(wǎng)格區(qū)域,這樣可以在大范圍內(nèi)搜索車道標記。

gen_grid_region (Grid, MinSize, MinSize, 'lines', 512, 512)  
* 生成一個512x512的網(wǎng)格區(qū)域,用于車道檢測

clip_region (Grid, StreetGrid, 130, 10, 450, 502)  
* 從生成的網(wǎng)格區(qū)域中裁剪出指定區(qū)域(130, 10, 450, 502),得到街道網(wǎng)格區(qū)域

在這一步中,gen_grid_region函數(shù)生成了一個512x512的網(wǎng)格區(qū)域,網(wǎng)格間距為MinSize。然后,我們用clip_region函數(shù)從網(wǎng)格中裁剪出了一個感興趣的區(qū)域(街道網(wǎng)格區(qū)域),為后續(xù)處理提供了一個明確的目標區(qū)域。

3. 車道標記檢測算法核心步驟

接下來,我們進入車道檢測的核心部分。通過Sobel算子提取圖像的梯度信息,并結(jié)合閾值化技術(shù)來提取車道標記。

for i := 0 to 28 by 1  
* 對于每張圖像進行循環(huán),遍歷場景0到28

    read_image (ActualImage, 'autobahn/scene_' + (i$'02'))  
    * 讀取場景圖像(場景編號為i)

    reduce_domain (ActualImage, StreetGrid, Mask)  
    * 使用街道網(wǎng)格區(qū)域?qū)D像進行約束,得到圖像的感興趣區(qū)域(Mask)

    sobel_amp (Mask, Gradient, 'sum_abs', 3)  
    * 對感興趣區(qū)域應用Sobel算子,計算梯度幅值,使用絕對值和方法,窗口大小為3

    threshold (Gradient, Points, 20, 255)  
    * 對梯度幅值進行閾值化處理,保留值在20到255之間的區(qū)域,得到車道邊緣點

    dilation_rectangle1 (Points, RegionDilation, MinSize, MinSize)  
    * 對車道邊緣點進行矩形膨脹,膨脹的大小為MinSize x MinSize

    reduce_domain (ActualImage, RegionDilation, StripGray)  
    * 使用膨脹后的區(qū)域?qū)D像進行約束,得到一個新的圖像區(qū)域(StripGray)

    threshold (StripGray, Strip, 190, 255)  
    * 對處理后的圖像區(qū)域應用閾值化操作,保留值在190到255之間的部分

    fill_up (Strip, RegionFillUp)  
    * 對二值圖像進行填充操作,填充車道區(qū)域

    dev_display (ActualImage)  
    * 顯示當前圖像

    dev_display (RegionFillUp)  
    * 顯示車道填充區(qū)域

endfor  

這部分代碼完成了車道標記檢測的主要任務。具體步驟如下:

 

讀取圖像并約束區(qū)域:通過read_image讀取不同的圖像數(shù)據(jù),然后利用reduce_domain函數(shù)將處理范圍限制在感興趣區(qū)域StreetGrid內(nèi)。

 

 

梯度計算和閾值化:使用sobel_amp計算圖像的梯度幅值,之后通過threshold進行閾值化,提取出車道邊緣的像素點。

 

 

膨脹操作:通過dilation_rectangle1對提取的車道邊緣點進行膨脹,擴大檢測區(qū)域,確保車道標記的完整性。

 

 

再次閾值化和填充:對膨脹后的圖像進行再次閾值化,并用fill_up函數(shù)填充車道區(qū)域,確保標記完整。

 

4. 顯示結(jié)果與更新窗口

最后,通過dev_display函數(shù)顯示處理后的圖像和車道區(qū)域。

dev_set_line_width (1)  
* 將線寬設置回1

dev_update_window ('on')  
* 恢復窗口更新

set_system ('init_new_image', Information)  
* 恢復圖像初始化的系統(tǒng)參數(shù)

這些代碼段完成了顯示和更新圖像窗口的操作,確保用戶能夠?qū)崟r看到車道檢測的結(jié)果。

5. 算法效果圖

以下是該車道標記檢測算法在處理過程中的效果圖示例:

 

原始圖像:

640.webp.png

 

檢測到的車道標記:

640.webp (1).png

 

通過這些效果圖,可以看到算法如何在復雜的道路環(huán)境中成功提取車道標記。


相關資訊

專業(yè)工程師

24小時在線服務提交需求快速為您定制解決方案

13798538021