日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

opencv 边缘平滑_基于OpenCV的车道检测实现(一)

發布時間:2024/7/23 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 opencv 边缘平滑_基于OpenCV的车道检测实现(一) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

無人駕駛的話題日趨起熱,而車道線檢測對于無人駕駛的路徑規劃來講特別重要。要遵守交通規則,首先的要求便是對車道線檢測,而且通過檢測車道線可以進一步的檢測地面指示標志、進行前碰撞預警策略設計等。

早早就對OpenCV感興趣,但遲遲未去實踐,現在我們就一起看看如何基于OpenCV進行檢測吧!

步驟:

1、Canny邊緣檢測算法的實現

2、OPENCV ROI(感興趣區域替換)

3、霍夫變換

4、離群值過濾

5、最小二乘擬合

6、直線繪制與整合

1、canny邊緣檢測算法

Opencv中的幾種邊緣檢測算法_人工智能_k-CSDN博客?blog.csdn.net

首先,Canny 邊緣檢測是一種非常流行的邊緣檢測算法。忘記講了,前面需要將圖片灰度化,這樣使得圖片更好處理。

原圖:

灰度之后:

img=cv2.imread('img.jpg',cv2.IMREAD_GRAYSCALE)

接著進行邊緣檢測:

edge_img=cv2.Canny(img,100,150)

Canny邊緣檢測算法:

step1:用高斯濾波器平滑圖象;

step2:用一階偏導的有限差分來計算梯度的幅值和方向;

step3:對梯度幅值進行非極大值抑制;

step4:用雙閾值算法檢測和連接邊緣。

Canny(名稱,下閾值,上閾值)

主要利用梯度來看是否為邊緣,上閾值以上的保留,下閾值以下的消去,中間的若與上閾值相連的則可留下,這樣則可消去大量噪點。

2、roi去除背景

opencv ROI(感興趣區域替換)?www.cnblogs.com

首先,要考慮原圖以什么形式保存,這里采用的是利用掩碼,產生一塊對應的畫布,進行替代。

mask=np.zeros_like(edge_img) mask=cv2.fillPoly(mask,np.array([[[20,488],[700,100],[130,200],[120,200]]]),color=255) masked_edge_img=cv2.bitwise_and(edge_img,mask)

這里則需要確定畫布的四個點的位置,color=255為黑色。

3、霍夫變換

霍夫變換?www.cnblogs.com

在直角坐標系中,我們可以通過繪制 y 對 x 的圖像來表示 y=mx+b。但在霍夫空間中,我們也可以通過繪制 b 對 m 的圖像將這條線表示為一個點,即用極坐標方程。

例如,直線方程 y=2x+1 在霍夫空間中可能是用 (2, 1) 表示的。

例如,對極坐標系中的點 (8, 6)、(4, 9) 和 (12, 3),我們在霍夫空間中繪制出的相應圖像如下:

在霍夫空間中相交的曲線越多,意味著用交點表示的線對應的點越多。如此,我們便可在霍夫空間中定義了交點的最小閾值,以便檢測車道線,消去無用的線。如果交點數量超過了定義的閾值,我們就確定一條對應參數 θ 和 r 的線。

left_lines=[line for line in lines if calculate_slope(line)>0] right_lines=[line for line in lines if calculate_slope(line)<0] def reject_abnormal_lines(lines,threshold):slopes=[calculate_slope(line) for line in lines]while len(lines)>0:mean=np.mean(slopes)diff=[abs(s-mean) for s in slopes]idx=np.argmax(diff)if diff[idx]>threshold:slopes.pop(idx)lines.pop(idx)else:breakreturn lines reject_abnormal_lines(left_lines,threshold=0.002)

通過以上三步,我們便可初步將車道線的位置確定下來。歡迎大家一起來嘗試!

總結

以上是生活随笔為你收集整理的opencv 边缘平滑_基于OpenCV的车道检测实现(一)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。