成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁 > 知識(shí)庫 > Python道路車道線檢測的實(shí)現(xiàn)

Python道路車道線檢測的實(shí)現(xiàn)

熱門標(biāo)簽:上海正規(guī)的外呼系統(tǒng)最新報(bào)價(jià) 企業(yè)彩鈴地圖標(biāo)注 電銷機(jī)器人錄音要學(xué)習(xí)什么 長春極信防封電銷卡批發(fā) 煙臺(tái)電話外呼營銷系統(tǒng) 銀川電話機(jī)器人電話 預(yù)覽式外呼系統(tǒng) 如何地圖標(biāo)注公司 外賣地址有什么地圖標(biāo)注

車道線檢測是自動(dòng)駕駛汽車以及一般計(jì)算機(jī)視覺的關(guān)鍵組件。這個(gè)概念用于描述自動(dòng)駕駛汽車的路徑并避免進(jìn)入另一條車道的風(fēng)險(xiǎn)。

在本文中,我們將構(gòu)建一個(gè)機(jī)器學(xué)習(xí)項(xiàng)目來實(shí)時(shí)檢測車道線。我們將使用 OpenCV 庫使用計(jì)算機(jī)視覺的概念來做到這一點(diǎn)。為了檢測車道,我們必須檢測車道兩側(cè)的白色標(biāo)記。


使用 Python 和 OpenCV 進(jìn)行道路車道線檢測
使用 Python 中的計(jì)算機(jī)視覺技術(shù),我們將識(shí)別自動(dòng)駕駛汽車必須行駛的道路車道線。這將是自動(dòng)駕駛汽車的關(guān)鍵部分,因?yàn)樽詣?dòng)駕駛汽車不應(yīng)該越過它的車道,也不應(yīng)該進(jìn)入對(duì)面車道以避免事故。

幀掩碼和霍夫線變換
要檢測車道中的白色標(biāo)記,首先,我們需要屏蔽幀的其余部分。我們使用幀屏蔽來做到這一點(diǎn)。該幀只不過是圖像像素值的 NumPy 數(shù)組。為了掩蓋幀中不必要的像素,我們只需將 NumPy 數(shù)組中的這些像素值更新為 0。

制作后我們需要檢測車道線。用于檢測此類數(shù)學(xué)形狀的技術(shù)稱為霍夫變換?;舴蜃儞Q可以檢測矩形、圓形、三角形和直線等形狀。

代碼下載
源碼請(qǐng)下載:車道線檢測項(xiàng)目代碼

按照以下步驟在 Python 中進(jìn)行車道線檢測:

1.導(dǎo)入包

import matplotlib.pyplot as plt

import numpy as np
import cv2
import os
import matplotlib.image as mpimg
from moviepy.editor import VideoFileClip
import math

2. 應(yīng)用幀屏蔽并找到感興趣的區(qū)域:

def interested_region(img, vertices):
    if len(img.shape) > 2: 
        mask_color_ignore = (255,) * img.shape[2]
    else:
        mask_color_ignore = 255
        
    cv2.fillPoly(np.zeros_like(img), vertices, mask_color_ignore)
    return cv2.bitwise_and(img, np.zeros_like(img))

3.霍夫變換空間中像素到線的轉(zhuǎn)換:

def hough_lines(img, rho, theta, threshold, min_line_len, max_line_gap):
    lines = cv2.HoughLinesP(img, rho, theta, threshold, np.array([]), minLineLength=min_line_len, maxLineGap=max_line_gap)
    line_img = np.zeros((img.shape[0], img.shape[1], 3), dtype=np.uint8)
    lines_drawn(line_img,lines)
    return line_img

4. 霍夫變換后在每一幀中創(chuàng)建兩條線:

def lines_drawn(img, lines, color=[255, 0, 0], thickness=6):
    global cache
    global first_frame
    slope_l, slope_r = [],[]
    lane_l,lane_r = [],[]

    α =0.2 
  for line in lines:
        for x1,y1,x2,y2 in line:
            slope = (y2-y1)/(x2-x1)
            if slope > 0.4:
                slope_r.append(slope)
                lane_r.append(line)
            elif slope  -0.4:
                slope_l.append(slope)
                lane_l.append(line)
        img.shape[0] = min(y1,y2,img.shape[0])
    if((len(lane_l) == 0) or (len(lane_r) == 0)):
        print ('no lane detected')
        return 1
    slope_mean_l = np.mean(slope_l,axis =0)
    slope_mean_r = np.mean(slope_r,axis =0)
    mean_l = np.mean(np.array(lane_l),axis=0)
    mean_r = np.mean(np.array(lane_r),axis=0)
    
    if ((slope_mean_r == 0) or (slope_mean_l == 0 )):
        print('dividing by zero')
        return 1
    
    x1_l = int((img.shape[0] - mean_l[0][1] - (slope_mean_l * mean_l[0][0]))/slope_mean_l) 
    x2_l = int((img.shape[0] - mean_l[0][1] - (slope_mean_l * mean_l[0][0]))/slope_mean_l)   
    x1_r = int((img.shape[0] - mean_r[0][1] - (slope_mean_r * mean_r[0][0]))/slope_mean_r)
    x2_r = int((img.shape[0] - mean_r[0][1] - (slope_mean_r * mean_r[0][0]))/slope_mean_r)
    
   
    if x1_l > x1_r:
        x1_l = int((x1_l+x1_r)/2)
        x1_r = x1_l
        y1_l = int((slope_mean_l * x1_l ) + mean_l[0][1] - (slope_mean_l * mean_l[0][0]))
        y1_r = int((slope_mean_r * x1_r ) + mean_r[0][1] - (slope_mean_r * mean_r[0][0]))
        y2_l = int((slope_mean_l * x2_l ) + mean_l[0][1] - (slope_mean_l * mean_l[0][0]))
        y2_r = int((slope_mean_r * x2_r ) + mean_r[0][1] - (slope_mean_r * mean_r[0][0]))
    else:
        y1_l = img.shape[0]
        y2_l = img.shape[0]
        y1_r = img.shape[0]
        y2_r = img.shape[0]
      
    present_frame = np.array([x1_l,y1_l,x2_l,y2_l,x1_r,y1_r,x2_r,y2_r],dtype ="float32")
    
    if first_frame == 1:
        next_frame = present_frame        
        first_frame = 0        
    else :
        prev_frame = cache
        next_frame = (1-α)*prev_frame+α*present_frame
             
    cv2.line(img, (int(next_frame[0]), int(next_frame[1])), (int(next_frame[2]),int(next_frame[3])), color, thickness)
    cv2.line(img, (int(next_frame[4]), int(next_frame[5])), (int(next_frame[6]),int(next_frame[7])), color, thickness)
    
    cache = next_frame

5.處理每一幀視頻以檢測車道:

def weighted_img(img, initial_img, α=0.8, β=1., λ=0.):
    return cv2.addWeighted(initial_img, α, img, β, λ)


def process_image(image):

    global first_frame

    gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
    img_hsv = cv2.cvtColor(image, cv2.COLOR_RGB2HSV)


    lower_yellow = np.array([20, 100, 100], dtype = "uint8")
    upper_yellow = np.array([30, 255, 255], dtype="uint8")

    mask_yellow = cv2.inRange(img_hsv, lower_yellow, upper_yellow)
    mask_white = cv2.inRange(gray_image, 200, 255)
    mask_yw = cv2.bitwise_or(mask_white, mask_yellow)
    mask_yw_image = cv2.bitwise_and(gray_image, mask_yw)

    gauss_gray= cv2.GaussianBlur(mask_yw_image, (5, 5), 0)

    canny_edges=cv2.Canny(gauss_gray, 50, 150)

    imshape = image.shape
    lower_left = [imshape[1]/9,imshape[0]]
    lower_right = [imshape[1]-imshape[1]/9,imshape[0]]
    top_left = [imshape[1]/2-imshape[1]/8,imshape[0]/2+imshape[0]/10]
    top_right = [imshape[1]/2+imshape[1]/8,imshape[0]/2+imshape[0]/10]
    vertices = [np.array([lower_left,top_left,top_right,lower_right],dtype=np.int32)]
    roi_image = interested_region(canny_edges, vertices)

    theta = np.pi/180

    line_image = hough_lines(roi_image, 4, theta, 30, 100, 180)
    result = weighted_img(line_image, image, α=0.8, β=1., λ=0.)
    return result

6. 將輸入視頻剪輯成幀并得到結(jié)果輸出視頻文件:

first_frame = 1
white_output = '__path_to_output_file__'
clip1 = VideoFileClip("__path_to_input_file__")
white_clip = clip1.fl_image(process_image)
white_clip.write_videofile(white_output, audio=False)

車道線檢測項(xiàng)目 GUI 代碼:

import tkinter as tk
from tkinter import *
import cv2
from PIL import Image, ImageTk
import os
import numpy as np


global last_frame1                                   
last_frame1 = np.zeros((480, 640, 3), dtype=np.uint8)
global last_frame2                                      
last_frame2 = np.zeros((480, 640, 3), dtype=np.uint8)
global cap1
global cap2
cap1 = cv2.VideoCapture("path_to_input_test_video")
cap2 = cv2.VideoCapture("path_to_resultant_lane_detected_video")

def show_vid():                                       
    if not cap1.isOpened():                             
        print("cant open the camera1")
    flag1, frame1 = cap1.read()
    frame1 = cv2.resize(frame1,(400,500))
    if flag1 is None:
        print ("Major error!")
    elif flag1:
        global last_frame1
        last_frame1 = frame1.copy()
        pic = cv2.cvtColor(last_frame1, cv2.COLOR_BGR2RGB)     
        img = Image.fromarray(pic)
        imgtk = ImageTk.PhotoImage(image=img)
        lmain.imgtk = imgtk
        lmain.configure(image=imgtk)
        lmain.after(10, show_vid)


def show_vid2():
    if not cap2.isOpened():                             
        print("cant open the camera2")
    flag2, frame2 = cap2.read()
    frame2 = cv2.resize(frame2,(400,500))
    if flag2 is None:
        print ("Major error2!")
    elif flag2:
        global last_frame2
        last_frame2 = frame2.copy()
        pic2 = cv2.cvtColor(last_frame2, cv2.COLOR_BGR2RGB)
        img2 = Image.fromarray(pic2)
        img2tk = ImageTk.PhotoImage(image=img2)
        lmain2.img2tk = img2tk
        lmain2.configure(image=img2tk)
        lmain2.after(10, show_vid2)

if __name__ == '__main__':
    root=tk.Tk()                                     
    lmain = tk.Label(master=root)
    lmain2 = tk.Label(master=root)

    lmain.pack(side = LEFT)
    lmain2.pack(side = RIGHT)
    root.title("Lane-line detection")            
    root.geometry("900x700+100+10") 
    exitbutton = Button(root, text='Quit',fg="red",command=   root.destroy).pack(side = BOTTOM,)
    show_vid()
    show_vid2()
    root.mainloop()                                  
    cap.release()

到此這篇關(guān)于Python道路車道線檢測的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Python 道路車道線檢測內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • python+opencv實(shí)現(xiàn)車道線檢測

標(biāo)簽:佳木斯 西寧 宜昌 上饒 湖北 盤錦 珠海 潮州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Python道路車道線檢測的實(shí)現(xiàn)》,本文關(guān)鍵詞  Python,道路,車道,線,檢測,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Python道路車道線檢測的實(shí)現(xiàn)》相關(guān)的同類信息!
  • 本頁收集關(guān)于Python道路車道線檢測的實(shí)現(xiàn)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    精品黑人一区二区三区| 六月激情综合网| 天堂网在线.www天堂在线视频| 亚洲最大av| 97欧洲一区二区精品免费| 草草影院在线| 亚洲精品720p| 日韩电影免费观看高清完整版| 女同激情久久av久久| 国产精品免费一区二区三区观看| 一级欧美一级日韩片| 亚洲第一av网| 国产精品大尺度| 嫩草嫩草嫩草| 成人性生活毛片| 日韩xxx视频| 国产亚洲成av人片在线观看| 久久久久久五月天久久久久久久久| 欧美福利视频| 黄色污网站在线观看| 久久一区二区视频| 欧美日本二区| 天堂√在线观看一区二区| √新版天堂资源在线资源| 极品少妇一区二区三区| 国内成人精品2018免费看| 日韩免费看网站| 在线看黄网站| 国产毛片精品视频| 欧美 日本 亚洲| 精品久久久无码人妻字幂| 在线观看av片| 久久露脸国语精品国产91| 国产精品区一区二区三| 中文字幕在线观看免费| 亚洲精品黄色| 久久av高潮av| 国产精品久久久久久久久鸭| 天堂а√在线最新版中文在线| 国产亚洲一本大道中文在线| 成人免费视频网站在线看| 亚洲国产日韩欧美在线图片| 97视频免费在线观看| 国产伦精品一区二区三区高清版| 天堂视频福利| 精品亚洲永久免费精品| 综合网在线视频| 国产偷人爽久久久久久老妇app| 欧美日韩天堂| 亚洲精品久久久久久宅男| 亚洲欧美日韩久久久久久| 亚洲成人二区| 高h视频在线| 日韩精品一区在线观看| 精品一区二区三区av| 欧美阿v一级看视频| 久久久久国内| 99久久夜色精品国产网站| av一本在线| 国内精品中文字幕| 翁止熄痒禁伦短文合集免费视频| xxxx黑人da| 911国产精品| 俄罗斯精品一区二区三区| 91啦中文成人| 日韩性xxx| 久久精品二区三区| 国产人妻一区二区| 宅男噜噜噜66国产日韩在线观看| 精品国产乱码久久久久久闺蜜| 亚洲国产精品激情在线观看| 任我爽精品视频在线播放| 国内精品一区二区三区四区| 国产精品日韩欧美一区二区三区| 屁屁影院ccyy国产第一页| 国产精品日本一区二区三区在线| 精品国产麻豆免费人成网站| 久久精品免费一区二区| 综合激情久久| 黄视频网站在线| 人交獸av完整版在线观看| 亚欧美无遮挡hd高清在线视频| 欧美夜福利tv在线| 国产极品美女高潮无套嗷嗷叫酒店| 国产免费黄色一级片| 欧美精品一区二区三区三州| 日韩欧美在线视频播放| 日韩熟女精品一区二区三区| 在线观看国产黄| 国产精品网曝门| 偷拍女澡堂一区二区三区| 亚洲精品成人悠悠色影视| 色屁屁草草影院ccyycom| 一区二区欧美视频| 91视频-88av| 亚洲色图另类图片| 九色视频网站入口| 美女福利视频一区二区| 日韩精品分区| 精品亚洲一区二区三区在线观看| 国产伦精品一区二区三区88av| 久久久久久久国产| 阳光姐妹淘韩国版| 日本中文字幕免费| 精品在线网站观看| 久久99成人| 男人操女人逼免费视频| 色婷婷激情久久| 男女羞羞在线观看| 意大利激情丛林无删减版dvd| 久久成人综合网| 一级毛片免费视频| 国产一区二区精品调教| av高清久久久| 玖玖玖免费嫩草在线影院一区| 国产xxxxx18| 中文字幕第一页亚洲| 欧美性xxxx18| 91精品一久久香蕉国产线看观看| 日本性生活网站| 国产蜜臀av在线一区二区三区| 日本一区免费网站| 日韩不卡av| 日本乱码一区二区三区不卡| av在线资源观看| 亚洲高清毛片一区二区| 禁久久精品乱码| 在线观看免费国产成人软件| 欧美日本在线视频中文字字幕| 久久久天堂国产精品| 成年人午夜视频在线观看| 成人动漫在线播放| 久久不见久久见中文字幕免费| 国产精品裸体瑜伽视频| 国产精品免费不| 精品www久久久久奶水| 日本久久中文字幕| 在线观看成人免费视频| 性欧美精品xxxx| 亚洲奶大毛多的老太婆| 成人免费无码av| 日本不卡在线观看视频| 国产精品国产三级国产aⅴ浪潮| 8x8x8国产精品| 国产精品精品久久久久久| 嫩草在线视频| 成人福利网站在线观看11| 秋霞成人午夜鲁丝一区二区三区| 91免费日韩| 免费av一区二区三区四区| 国产真人无码作爱视频免费| 成人丝袜视频网| 另类图片亚洲色图| 国产裸体歌舞团一区二区| 又骚又黄的视频| 一区二区三区在线看| 高清欧美性猛交xxxx| 一级毛片在线观| 欧美日韩精品免费在线观看视频| 欧美精品自拍偷拍动漫精品| 亚洲影院色无极综合| 日韩大陆欧美高清视频区| 欧美男男freegayvideosroom| 欧美精品欧美极品欧美激情| 黑人精品xxx一区| 日韩在线观看第一页| 91理论片午午论夜理片久久| 色综合激情五月| 国产美女作爱全过程免费视频| eeuss免费天堂影院| 日韩国产中文字幕| 最近久乱中文字幕| 激情六月婷婷久久| 最新亚洲国产精品| 欧美一区二区中文字幕| 国产精品毛片高清在线完整版| 日日干夜夜草| 九九色在线视频| 色婷婷777777仙踪林| 91蝌蚪porny成人天涯| 精品亚洲男同gayvideo网站| 欧美丝袜美腿| 三大队在线观看| 久久久久久影院| 日本人妖一区二区| 免费日韩电影在线观看| 国产经典一区二区| 污污网站在线看| 国产日韩欧美在线一区| 国产伦精品一区二区三区四区视频_| caoporn97在线视频| 亚洲精品日韩在线| 成人中文字幕在线观看| 国产综合视频在线观看| 国产美女情趣调教h一区二区| 日韩福利影视| 免费黄在线观看| 7m精品国产导航在线| 香蕉视频黄色在线观看| 欧美18xxxx| 久久久久久久久久一区| 国产黄色一区二区| 91肉色超薄丝袜脚交一区二区| 91成人一区二区三区| 久久精品欧美视频| 欧美在线免费播放| jizz视频18| 国产黄色片在线免费观看| 国内高清免费在线视频| 国产在线播放一区二区| 日本人视频jizz页码69| 精品国产乱码久久久久久婷婷| 激情五月开心婷婷| 中文在线字幕av| 小说区图片区色综合区| 高清在线观看免费| av超碰免费在线| 性农村xxxxx小树林| 高清av中文在线字幕观看1| 久久精品二区三区| a级黄色片免费看| 欧美成人久久久免费播放| 成人免费视频网站入口::| 亚洲一区av在线播放| 成人黄色毛片| 日本乱人伦a精品| 在线观看成人动漫| 超污网站在线观看| 肉色超薄丝袜脚交| 国产欧美亚洲日本| 3atv一区二区三区| 在线观看国产区| 亚洲人永久免费| 亚洲一区二区三区精品在线观看| 欧美国产高清| 91成人在线观看喷潮教学| 欧美偷拍第一页| 在线精品视频一区| 欧洲精品乱码久久久久蜜桃| 亚洲一区二区在线视频| 国产在线成人精品午夜| 伊人精品久久久久7777| av免费在线观看网站| 91欧美在线| 国产一区二区三区黄片| 亚洲欧美日韩中文字幕一区二区三区| 精品卡一卡二卡三卡四在线| 手机在线视频一区| 欧美疯狂性受xxxxx喷水图片| 懂色av影视一区二区三区| 国产精品中文字幕欧美| 超碰97人人人人人蜜桃| 国产精品视频网址| 国产精品综合一区二区| 亚洲精品456在线播放狼人| 成人午夜剧场视频网站| 国产美女av在线| 欧美一区二区久久| 一区二区三区四区五区精品| 精品人妻一区二区三区蜜桃| 色婷婷在线播放| 亚洲黄色小视频| 国产精品爽爽ⅴa在线观看| 久久全球大尺度高清视频| 女性女同性aⅴ免费观女性恋| 日本高清视色| 一级视频在线播放| 国产在线一在线二| 久久久精品影视| 老司机精品福利视频| 色爽爽爽爽爽爽爽爽| 国产麻豆日韩| 国产视频精品视频| 丁香高清在线观看完整电影视频| 黄色片视频网站| 日日噜噜噜夜夜爽亚洲精品| 国产精品乱子伦| 国产精品久久久久77777丨| 男同互操gay射视频在线看| 粉嫩av国产一区二区三区| 亚洲欧美中文字幕| 久久久久久久久99精品| 无码中文字幕色专区| 亚洲视频狠狠干| xxxx黑人da| 一区二区三区在线视频播放| 久久久久中文字幕| 亚洲熟妇无码久久精品| 日本一区二区三区四区在线视频| 欧美一级bbbbb性bbbb喷潮片| 欧美另类高清videos的特点| 亚洲天堂色网站| 国产精品资源站在线| 91香蕉嫩草影院入口| 亚洲自拍偷拍网| 色综合久久66| 日韩一区在线视频| 国产精品探花一区二区在线观看| 欧美国产国产综合| 丰满少妇大力进入| 亚洲国产精品无码久久久久高潮| 欧美日韩加勒比精品一区| 中文字幕丰满乱子伦无码专区| 亚洲人成电影在线播放| 亚洲精品乱码久久久久久久| 国产精品99久久久久久似苏梦涵| 亚洲无av在线中文字幕| 草草影院在线| 亚洲欧美偷拍视频| 色偷偷噜噜噜亚洲男人的天堂| 国产一区福利在线| 91在线超碰| 日本免费一区二区三区视频观看| 欧美在线亚洲一区| 欧美激情视频一区二区三区免费| 日本a级片久久久| 天天操夜夜操国产精品| 国产欧美日韩视频一区二区| 麻豆一区一区三区四区| 欧美巨胸大乳hitomi| 91亚洲精品久久久久久久久久久久| a级黄色免费视频| 一区二区三区www污污污网站| 欧美人与牲动交xxxxbbbb| 国产高清www| 蜜臀av一区二区三区有限公司| av播放官网| 欧美一卡二卡在线观看|