1.顏色閾值+ 區(qū)域掩模
我們可以僅僅通過設(shè)置一些RGB通道閾值,來提取車道線。
以下的代碼設(shè)置了RGB通道閾值為220,大于220的像素將設(shè)置為黑色,這樣可以將測試圖片中的車道線提取出來
效果如下

我們發(fā)現(xiàn)符合閾值的像素既包括了車道線,也包含了其他非車道線部分。
顯然,一個成熟的自動駕駛感知算法,是不可能使用這種方法的。僅僅依靠顏色,既不科學也不魯棒。
有一種改進思路是利用圖像掩模的方法
假設(shè)拍攝圖像的前置攝像頭安裝在汽車上的固定位置,這樣車道線將始終出現(xiàn)在圖像的相同區(qū)域中。我們將設(shè)置了一個區(qū)域,認為車道線處于該區(qū)域內(nèi)。
我們設(shè)置了一個三角形的區(qū)域,原則上你可以使用其他形狀
![圖
python代碼如下
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
import numpy as np
# Read in the image
image = mpimg.imread('test.jpg')
# Grab the x and y sizes and make two copies of the image
# With one copy we'll extract only the pixels that meet our selection,
# then we'll paint those pixels red in the original image to see our selection
# overlaid on the original.
ysize = image.shape[0]
xsize = image.shape[1]
color_select= np.copy(image)
line_image = np.copy(image)
# Define our color criteria
red_threshold = 220
green_threshold = 220
blue_threshold = 220
rgb_threshold = [red_threshold, green_threshold, blue_threshold]
# Define a triangle region of interest (Note: if you run this code,
left_bottom = [0, ysize-1]
right_bottom = [xsize-1, ysize-1]
apex = [650, 400]
fit_left = np.polyfit((left_bottom[0], apex[0]), (left_bottom[1], apex[1]), 1)
fit_right = np.polyfit((right_bottom[0], apex[0]), (right_bottom[1], apex[1]), 1)
fit_bottom = np.polyfit((left_bottom[0], right_bottom[0]), (left_bottom[1], right_bottom[1]), 1)
# Mask pixels below the threshold
color_thresholds = (image[:,:,0] < rgb_threshold[0]) |
(image[:,:,1] < rgb_threshold[1]) |
(image[:,:,2] < rgb_threshold[2])
# Find the region inside the lines
XX, YY = np.meshgrid(np.arange(0, xsize), np.arange(0, ysize))
region_thresholds = (YY > (XX*fit_left[0] + fit_left[1])) &
(YY > (XX*fit_right[0] + fit_right[1])) &
(YY < (XX*fit_bottom[0] + fit_bottom[1]))
# Mask color selection
color_select[color_thresholds] = [0,0,0]
# Find where image is both colored right and in the region
line_image[~color_thresholds & region_thresholds] = [255,0,0]
# Display our two output images
plt.imshow(color_select)
plt.imshow(line_image)
# uncomment if plot does not display
plt.show()
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
-
RGB
+關(guān)注
關(guān)注
4文章
831瀏覽量
61940 -
檢測
+關(guān)注
關(guān)注
5文章
4860瀏覽量
94143 -
python
+關(guān)注
關(guān)注
57文章
4876瀏覽量
90025
發(fā)布評論請先 登錄
相關(guān)推薦
熱點推薦
JCMSuite應用:衰減相移掩模
在本示例中,模擬了衰減相移掩模。 該掩模將線/空間圖案成像到光刻膠中。 掩模的單元格如下圖所示:
掩模的基板被具有兩個開口的吸收材料所覆蓋
發(fā)表于 03-12 09:48
怎么實現(xiàn)基于OMAP3530平臺的車道線識別檢測的設(shè)計?
本文提出的車道線識別算法的流程如下圖1所示,首先通過OV7670攝像頭捕獲道路圖像,然后按照流程圖中的步驟處理圖像,最后得到清晰的車道標志線,為以后智能車輛路徑規(guī)劃和避障提供支持。
發(fā)表于 06-02 06:31
JCMSuite應用—衰減相移掩模
在本示例中,模擬了衰減相移掩模。該掩模將線/空間圖案成像到光刻膠中。掩模的單元格如下圖所示:掩模的基板被具有兩個開口的吸收材料所覆蓋。在其中
發(fā)表于 10-22 09:20
單片機車道線檢測模型的相關(guān)資料分享
本篇文章為車道線檢測模型系列文章的第四篇,第一篇介紹了模型所使用的單片機和開發(fā)板,第二篇介紹了實時操作系統(tǒng)RTOS,第三篇介紹了所用到的攝像頭和LCD觸摸屏外設(shè),想了解的朋友點擊:(一)https
發(fā)表于 11-25 08:02
基于邊界特征的車道標識線檢測方法
為了得到較理想的車道的標線邊緣,利用車道的邊緣特征對車道圖像進行二值化和形態(tài)學處理,對車道區(qū)域實現(xiàn)
發(fā)表于 01-13 09:48
?54次下載
基于DSP Builder的行車道檢測設(shè)計實現(xiàn)
通過對攝像頭讀入的道路白線圖像進行灰度變換,再檢測出白線的邊緣,這是實現(xiàn)智能車自動導航和輔助導航的基礎(chǔ)。行車道檢測系統(tǒng)可以應用于智能車的防撞
發(fā)表于 11-03 16:19
?0次下載
一套車道線檢測系統(tǒng)
車道線檢測主要用于駕駛輔助和無人駕駛系統(tǒng),根據(jù)攝像頭數(shù)量,分為單目和雙目兩種檢測系統(tǒng)。出于實時性和經(jīng)濟性的考慮,一般采用單目檢測,在對采集過
發(fā)表于 01-31 11:26
?1次下載
基于雷達掃描檢測車道線的四種方法
基于視覺系統(tǒng)的車道線檢測有諸多缺陷。
首先,視覺系統(tǒng)對背景光線很敏感,諸如陽光強烈的林蔭道,車道線被光線分割成碎片,致使無法提取出
發(fā)表于 03-07 14:02
?3583次閱讀
汽車電子的lidar檢測車道線原理分析
相機的光軸基本與地面平行,相機2D車道線成像和BEV視圖可以視為在兩個不同的視角下車道線的成像。如果我們能類比圖像拼接的方法,將相機視圖“拼接”到BEV視圖下,理論上可以
發(fā)表于 02-07 09:33
?1237次閱讀
python中用Canny邊緣檢測和霍夫變實現(xiàn)車道線檢測方法
Canny邊緣檢測+霍夫變換 顏色閾值+圖像掩模的方法雖然簡單,但是只能應對一些固定顏色車道線的場景。圖像像素受光照影響將是一個極其常見的問題。 canny邊緣
【實戰(zhàn)】Python+OpenCV車道線檢測識別項目:實現(xiàn)L2級別自動駕駛必備(配套課程+平臺實踐)
的一個必備技能——車道線檢測。本文將詳細介紹一個車道線檢測項目的過程,從圖像采集到
python中用區(qū)域掩模實現(xiàn)車道線檢測
評論