91在线观看视频-91在线观看视频-91在线观看免费视频-91在线观看免费-欧美第二页-欧美第1页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

關(guān)于Python對(duì)交通路口的紅綠燈進(jìn)行顏色檢測

新機(jī)器視覺 ? 來源:CSDN技術(shù)社區(qū) ? 作者:2cy- ? 2021-10-13 09:32 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

轉(zhuǎn)自|Python聯(lián)盟

1.視頻讀取

首先把視頻讀取進(jìn)來,因?yàn)槲覝y試的視頻是4k的所以我用resize調(diào)整了一下視頻的分辨大小

cap = cv2.VideoCapture('video/小路口.mp4')while True:    ret,frame = cap.read()    if ret == False:        break    frame = cv2.resize(frame,(1920,1080))    cv2.imshow('frame',frame)    c = cv2.waitKey(10)    if c==27:break

imshow()

2.截取roi區(qū)域

截取roi的區(qū)域,也就是說,為了避免多余的干擾因素我們要把紅綠燈的位置給截取出來

截取后的roi

3.轉(zhuǎn)換hsv顏色空間

HSV顏色分量范圍

(詳細(xì)參考:https://www.cnblogs.com/wangyblzu/p/5710715.html)
一般對(duì)顏色空間的圖像進(jìn)行有效處理都是在HSV空間進(jìn)行的,然后對(duì)于基本色中對(duì)應(yīng)的HSV分量需要給定一個(gè)嚴(yán)格的范圍,下面是通過實(shí)驗(yàn)計(jì)算的模糊范圍(準(zhǔn)確的范圍在網(wǎng)上都沒有給出)。

H: 0— 180

S: 0— 255

V: 0— 255

此處把部分紅色歸為紫色范圍(如下圖所示):

da25da02-14b7-11ec-8fb8-12bb97331649.png

上面是已給好特定的顏色值,如果你的顏色效果不佳,可以通過python代碼來對(duì)min和max值的微調(diào),用opencv中的api來獲取你所需理想的顏色,可以復(fù)制以下代碼來進(jìn)行顏色的調(diào)整。
1.首先你要截取roi區(qū)域的一張圖片
2.讀取這張圖然后調(diào)整顏色值

顏色調(diào)整代碼如下:

(詳細(xì)參考:https://www.bilibili.com/video/BV16K411W7x9)

import cv2import numpy as np
def empty(a):    pass
def stackImages(scale,imgArray):    rows = len(imgArray)    cols = len(imgArray[0])    rowsAvailable = isinstance(imgArray[0], list)    width = imgArray[0][0].shape[1]    height = imgArray[0][0].shape[0]    if rowsAvailable:        for x in range ( 0, rows):            for y in range(0, cols):                if imgArray[x][y].shape[:2] == imgArray[0][0].shape [:2]:                    imgArray[x][y] = cv2.resize(imgArray[x][y], (0, 0), None, scale, scale)                else:                    imgArray[x][y] = cv2.resize(imgArray[x][y], (imgArray[0][0].shape[1], imgArray[0][0].shape[0]), None, scale, scale)                if len(imgArray[x][y].shape) == 2: imgArray[x][y]= cv2.cvtColor( imgArray[x][y], cv2.COLOR_GRAY2BGR)        imageBlank = np.zeros((height, width, 3), np.uint8)        hor = [imageBlank]*rows        hor_con = [imageBlank]*rows        for x in range(0, rows):            hor[x] = np.hstack(imgArray[x])        ver = np.vstack(hor)    else:        for x in range(0, rows):            if imgArray[x].shape[:2] == imgArray[0].shape[:2]:                imgArray[x] = cv2.resize(imgArray[x], (0, 0), None, scale, scale)            else:                imgArray[x] = cv2.resize(imgArray[x], (imgArray[0].shape[1], imgArray[0].shape[0]), None,scale, scale)            if len(imgArray[x].shape) == 2: imgArray[x] = cv2.cvtColor(imgArray[x], cv2.COLOR_GRAY2BGR)        hor= np.hstack(imgArray)        ver = hor    return ver
#讀取的圖片路徑path = './green.jpg'cv2.namedWindow("TrackBars")cv2.resizeWindow("TrackBars",640,240)cv2.createTrackbar("Hue Min","TrackBars",0,179,empty)cv2.createTrackbar("Hue Max","TrackBars",19,179,empty)cv2.createTrackbar("Sat Min","TrackBars",110,255,empty)cv2.createTrackbar("Sat Max","TrackBars",240,255,empty)cv2.createTrackbar("Val Min","TrackBars",153,255,empty)cv2.createTrackbar("Val Max","TrackBars",255,255,empty)
while True:    img = cv2.imread(path)    imgHSV = cv2.cvtColor(img,cv2.COLOR_BGR2HSV)    h_min = cv2.getTrackbarPos("Hue Min","TrackBars")    h_max = cv2.getTrackbarPos("Hue Max", "TrackBars")    s_min = cv2.getTrackbarPos("Sat Min", "TrackBars")    s_max = cv2.getTrackbarPos("Sat Max", "TrackBars")    v_min = cv2.getTrackbarPos("Val Min", "TrackBars")    v_max = cv2.getTrackbarPos("Val Max", "TrackBars")    print(h_min,h_max,s_min,s_max,v_min,v_max)    lower = np.array([h_min,s_min,v_min])    upper = np.array([h_max,s_max,v_max])    mask = cv2.inRange(imgHSV,lower,upper)    imgResult = cv2.bitwise_and(img,img,mask=mask)

    imgStack = stackImages(0.6,([img,imgHSV],[mask,imgResult]))    cv2.imshow("Stacked Images", imgStack)cv2.waitKey(1)

運(yùn)行代碼后調(diào)整的結(jié)果(如下圖所示),很明顯可以看到綠色已經(jīng)被獲取到。

da35e1a4-14b7-11ec-8fb8-12bb97331649.png

4.二值圖像顏色判定

因?yàn)閳D像是二值的圖像,所以如果圖像出現(xiàn)白點(diǎn),也就是255,那么就取他的max最大值255,視頻幀的不斷變化然后遍歷每個(gè)顏色值

red_color = np.max(red_blur)green_color = np.max(green_blur)if red_color == 255:  print('red')elif green_color == 255:print('green')

5.顏色結(jié)果畫在圖像上

用矩形框來框選出紅綠燈區(qū)域

cv2.rectangle(frame,(1020,50),(1060,90),(0,0,255),2) #按坐標(biāo)畫出矩形框cv2.putText(frame,"red",(1020,40),cv2.FONT_HERSHEY_COMPLEX,1,(0,0,255),2)#顯示red文本信息

6.完整代碼

import cv2import numpy as np
cap = cv2.VideoCapture('video/小路口.mp4')while True:    ret,frame = cap.read()    if ret == False:        break    frame = cv2.resize(frame,(1920,1080))    #截取roi區(qū)域    roiColor = frame[50:90,950:1100]    #轉(zhuǎn)換hsv顏色空間    hsv = cv2.cvtColor(roiColor,cv2.COLOR_BGR2HSV)
    #red    lower_hsv_red = np.array([157,177,122])    upper_hsv_red = np.array([179,255,255])    mask_red = cv2.inRange(hsv,lowerb=lower_hsv_red,upperb=upper_hsv_red)    #中值濾波    red_blur = cv2.medianBlur(mask_red, 7)    #green    lower_hsv_green = np.array([49,79,137])    upper_hsv_green = np.array([90,255,255])    mask_green = cv2.inRange(hsv,lowerb=lower_hsv_green,upperb=upper_hsv_green)    #中值濾波    green_blur = cv2.medianBlur(mask_green, 7)
    #因?yàn)閳D像是二值的圖像,所以如果圖像出現(xiàn)白點(diǎn),也就是255,那么就取他的max最大值255    red_color = np.max(red_blur)    green_color = np.max(green_blur)    #在red_color中判斷二值圖像如果數(shù)值等于255,那么就判定為red    if red_color == 255:        print('red')                        #。。。這是我經(jīng)常會(huì)混淆的坐標(biāo)。。。就列舉出來記一下。。。                        #      y  y+h x  x+w                        #frame[50:90,950:1100]
                        #     x   y    x+w  y+h        cv2.rectangle(frame,(1020,50),(1060,90),(0,0,255),2) #按坐標(biāo)畫出矩形框        cv2.putText(frame, "red", (1020, 40), cv2.FONT_HERSHEY_COMPLEX, 1, (0, 0, 255),2)#顯示red文本信息    #在green_color中判斷二值圖像如果數(shù)值等于255,那么就判定為green    elif green_color == 255:        print('green')        cv2.rectangle(frame,(1020,50),(1060,90),(0,255,0),2)        cv2.putText(frame, "green", (1020, 40), cv2.FONT_HERSHEY_COMPLEX, 1, (0, 255, 0),2)
    cv2.imshow('frame',frame)    red_blur = cv2.resize(red_blur,(300,200))    green_blur = cv2.resize(green_blur,(300,200))    cv2.imshow('red_window',red_blur)    cv2.imshow('green_window',green_blur)
    c = cv2.waitKey(10)    if c==27:break
編輯:jq
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4899

    瀏覽量

    70658
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4827

    瀏覽量

    86667
  • 4K
    4K
    +關(guān)注

    關(guān)注

    2

    文章

    533

    瀏覽量

    60569
  • HSV
    HSV
    +關(guān)注

    關(guān)注

    0

    文章

    10

    瀏覽量

    2731

原文標(biāo)題:基于Python對(duì)交通路口的紅綠燈進(jìn)行顏色檢測

文章出處:【微信號(hào):vision263com,微信公眾號(hào):新機(jī)器視覺】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    Momenta MNP記憶領(lǐng)航輔助駕駛系統(tǒng)輕松應(yīng)對(duì)城市復(fù)雜路況

    城市通勤是無數(shù)司機(jī)每天的“必修課”。路口眼花繚亂的紅綠燈、隨處可見的臨時(shí)停車、突然闖入視野的行人或車輛,以及夜晚有限的視線和各種意外狀況……這些日常駕駛中的瑣碎現(xiàn)象,總在不經(jīng)意間消耗著駕駛者的精力。
    的頭像 發(fā)表于 07-07 16:33 ?428次閱讀

    AI如何推動(dòng)智能交通變革

    全國悄然普及。 隨著人工智能技術(shù)的飛速發(fā)展,我們的出行方式正在經(jīng)歷一場靜悄悄的變革。從紅綠燈自動(dòng)優(yōu)化到高速事故秒級(jí)響應(yīng),從公交智能調(diào)度到物流效率提升,AI技術(shù)已深度融入交通系統(tǒng)的每個(gè)環(huán)節(jié),讓道路真正擁有了“思考能力”。
    的頭像 發(fā)表于 07-02 15:09 ?1140次閱讀

    使用PLC實(shí)現(xiàn)紅綠燈控制示例

    如圖為一個(gè)紅綠燈的控制時(shí)序圖,啟動(dòng)信號(hào)導(dǎo)通后,紅綠燈程序開始動(dòng)作。
    的頭像 發(fā)表于 05-29 09:45 ?503次閱讀
    使用PLC實(shí)現(xiàn)<b class='flag-5'>紅綠燈</b>控制示例

    V2X技術(shù)全解析

    °環(huán)境感知。其核心通信模式包括: V2V (車與車):共享車速、位置、制動(dòng)狀態(tài)等動(dòng)態(tài)信息; V2I (車與基礎(chǔ)設(shè)施):獲取紅綠燈、道路施工、限速等靜態(tài)信息; V2P (車與行人):檢測行人/騎行者的移動(dòng)軌跡; V2N (車與網(wǎng)絡(luò)):通過云端實(shí)現(xiàn)
    的頭像 發(fā)表于 05-10 15:15 ?1651次閱讀
    V2X技術(shù)全解析

    【ELF 2學(xué)習(xí)板試用】命令行功能測試-shell腳本進(jìn)行IO控制-紅綠燈項(xiàng)目-實(shí)現(xiàn)開機(jī)起動(dòng)

    接上文【ELF 2學(xué)習(xí)板試用】命令行功能測試-shell腳本進(jìn)行IO控制-紅綠燈項(xiàng)目 Linux 系統(tǒng)下 init 系統(tǒng) 大多數(shù) Linux 發(fā)行版的 init 系統(tǒng)是和 System V 相兼容
    發(fā)表于 02-11 11:24

    【ELF 2學(xué)習(xí)板試用】命令行功能測試-shell腳本進(jìn)行IO控制-紅綠燈按鈕項(xiàng)目

    接上文[【ELF 2學(xué)習(xí)板試用】命令行功能測試-shell腳本進(jìn)行IO控制-紅綠燈項(xiàng)目(https://bbs.elecfans.com/jishu_2475305_1_1.html) 紅綠燈按鈕
    發(fā)表于 02-06 15:39

    【ELF 2學(xué)習(xí)板試用】命令行功能測試-shell腳本進(jìn)行IO控制-紅綠燈項(xiàng)目

    ) 紅綠燈項(xiàng)目 硬件 ELF 2學(xué)習(xí)板 :一款用于嵌入式系統(tǒng)學(xué)習(xí)的開發(fā)板。 紅綠燈板 :一個(gè)簡單的外部設(shè)備,包含紅、綠、黃三個(gè)LED燈。 連接1* ELF 2學(xué)習(xí)板 紅綠燈板 連接2 紅綠燈
    發(fā)表于 02-06 11:55

    基于CNN和英特爾開發(fā)板的紅綠燈控制系統(tǒng)設(shè)計(jì)

    隨著中國經(jīng)濟(jì)的快速增長和城市化進(jìn)程的加速,城市交通擁堵、交通事故頻發(fā)以及環(huán)境污染等問題日益嚴(yán)重,尤其是在大城市中,這些問題表現(xiàn)得尤為突出。交通擁堵不僅影響了市民的日常出行效率,更是嚴(yán)重影響了緊急車輛
    的頭像 發(fā)表于 12-20 10:47 ?2056次閱讀
    基于CNN和英特爾開發(fā)板的<b class='flag-5'>紅綠燈</b>控制系統(tǒng)設(shè)計(jì)

    使用Python進(jìn)行串口通信的案例

    當(dāng)然!以下是一個(gè)使用Python進(jìn)行串口通信的簡單示例。這個(gè)示例展示了如何配置串口、發(fā)送數(shù)據(jù)以及接收數(shù)據(jù)。我們將使用 pyserial 庫,這是一個(gè)非常流行的用于串口通信的Python庫。 首先,你
    的頭像 發(fā)表于 11-22 09:11 ?1439次閱讀

    使用Python進(jìn)行圖像處理

    下面是一個(gè)關(guān)于使用Python在幾行代碼中分析城市輪廓線的快速教程。
    的頭像 發(fā)表于 11-07 10:14 ?580次閱讀
    使用<b class='flag-5'>Python</b><b class='flag-5'>進(jìn)行</b>圖像處理

    基于51單片機(jī)的路口交通燈控制系統(tǒng)仿真

    按鍵按下,所有路口紅燈亮,車輛禁行。(6)特種車輛通行按鍵分為東西和南北兩個(gè)按鍵,東西按鍵按下,東西向綠燈全亮;南北按鍵按下,南北向綠燈全亮,20S后恢復(fù)。設(shè)計(jì)介紹51單片機(jī)簡介51單片是一種低功耗
    的頭像 發(fā)表于 10-22 14:10 ?526次閱讀
    基于51單片機(jī)的<b class='flag-5'>路口交通</b>燈控制系統(tǒng)仿真

    現(xiàn)代摩比斯公司推出新一代高亮度LED燈:色散角大幅提升

    在科技日新月異的今天,每一個(gè)細(xì)微的創(chuàng)新都可能引領(lǐng)行業(yè)的變革。近日,現(xiàn)代摩比斯公司宣布成功研發(fā)出一種全新的LED燈,這款燈具不僅適用于紅綠燈,也完美適配于汽車尾燈,其色散角的顯著提升更是為交通照明領(lǐng)域帶來了新的突破。
    的頭像 發(fā)表于 10-14 16:42 ?1522次閱讀

    【星閃派物聯(lián)網(wǎng)開發(fā)套件體驗(yàn)連載】智能交通

    感謝電子發(fā)燒友,感謝潤和軟件,提供星閃派物聯(lián)網(wǎng)開發(fā)套件試用。 本次試用計(jì)劃: 用星閃派物聯(lián)網(wǎng)開發(fā)套件,先實(shí)現(xiàn)本地交通燈項(xiàng)目,接入WiFi連上云端,本地紅綠燈狀態(tài)上傳云端,云端顯示,云端遠(yuǎn)程控制紅綠燈
    發(fā)表于 10-05 13:00

    防反接電路、防倒灌電路、過流保護(hù)和ESP相關(guān)知識(shí)

    ,電路也不會(huì)受損,電器照樣能用。 防倒灌電路呢,它有點(diǎn)像交通路口紅綠燈。在一個(gè)系統(tǒng)中,如果有多個(gè)電源同時(shí)工作,有時(shí)候一個(gè)電源的電壓可能會(huì)高于另一個(gè),這時(shí)候如果不加控制,電流就會(huì)從高壓往低壓流,這就
    發(fā)表于 09-15 07:29

    東土科技自主研發(fā)的人工智能交通服務(wù)器實(shí)現(xiàn)規(guī)?;瘧?yīng)用

    在智能交通領(lǐng)域,一場由東土科技引領(lǐng)的技術(shù)革新正悄然改變著城市交通的面貌。近日,東土科技自主研發(fā)的人工智能交通服務(wù)器在北京城市副中心通州區(qū)成功實(shí)現(xiàn)了580處交通路口的規(guī)模化應(yīng)用,標(biāo)志著我
    的頭像 發(fā)表于 07-17 15:42 ?755次閱讀
    主站蜘蛛池模板: 香蕉视频久久久 | 98色花堂国产第一页 | 精品成人网 | 欧美天天 | 亚洲国内精品自在线影视 | 久久精品伊人波多野结 | 日韩a级毛片免费观看 | 国产三级在线观看视频 | 国产四虎 | 美女毛片免费 | 天天看天天爽天天摸天天添 | 男人都懂的网址在线看片 | 色老头一区二区三区在线观看 | 日日摸夜夜爽 | 欧美一级特黄aaaaaa在线看首页 | free 欧美| 久久中文字幕综合婷婷 | 国产精品久久久久久久久kt | 天堂bt资源在线官网 | 天天色天天综合 | 精品免费福利视频 | 在线亚洲小视频 | 亚洲欧美精品 | 亚洲人成影院在线高清 | 成人一二 | 亚洲伊人成人 | 看片国产 | 操操操综合网 | 午夜爱爱毛片xxxx视频免费看 | 好硬好大好爽女房东在线观看 | 亚洲精品美女 | 日日碰狠狠添天天爽五月婷 | 亚洲+国产+图片 | 欧美日韩精品乱国产538 | 四虎在线成人免费网站 | 久久精品男人的天堂 | 午夜视频在线免费看 | 国产高清免费在线观看 | 亚洲伊人tv综合网色 | 美女扒开尿口给男人桶动态图 | 亚洲成人网在线观看 |