chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

關(guān)于Python對交通路口的紅綠燈進(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)
一般對顏色空間的圖像進(jìn)行有效處理都是在HSV空間進(jìn)行的,然后對于基本色中對應(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代碼來對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ī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4922

    瀏覽量

    72296
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4848

    瀏覽量

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

    關(guān)注

    2

    文章

    534

    瀏覽量

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

    關(guān)注

    0

    文章

    10

    瀏覽量

    2788

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

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

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

掃碼添加小助手

加入工程師交流群

    評論

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

    ??低暼峦瞥龃竽P透唠A智控信號機(jī)

    紅綠燈變“聰明”的關(guān)鍵之一就在于信號機(jī)的“自適應(yīng)控制”,它通過雷達(dá)、攝像機(jī)等傳感器,實(shí)時(shí)“記錄”車流變化,通過交通供需模型,自動(dòng)調(diào)節(jié)紅綠燈的周期和各個(gè)方向的綠燈時(shí)長。例如哪個(gè)方向
    的頭像 發(fā)表于 09-29 17:11 ?641次閱讀

    易華錄助力廈門交警打造智慧紅綠燈

    交通信號燈是城市交通管理的重要基礎(chǔ)設(shè)施,是服務(wù)于產(chǎn)業(yè)發(fā)展和市民出行的溫度計(jì)。廈門市公安局交警支隊(duì)攜手易華錄持續(xù)提升信號調(diào)控技術(shù)手段,創(chuàng)新道路交通管理模式,著力推進(jìn)紅綠燈“智控”能力建設(shè)
    的頭像 發(fā)表于 09-28 09:31 ?267次閱讀

    touchgfx4.25顏色錯(cuò)誤是什么原因?qū)е碌?

    touchgfx4.25顏色錯(cuò)誤 .紫色顯示成了藍(lán)色. 使用rgb888或者rgb565模式都試過結(jié)果一樣.后方的紅綠藍(lán)紫是svg圖片.非box控件的顏色.
    發(fā)表于 08-14 06:21

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

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

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

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

    FLIR智能傳感器在智慧交通中的應(yīng)用

    在城市的交通脈絡(luò)中,交叉路口作為關(guān)鍵節(jié)點(diǎn),其監(jiān)測與控制技術(shù)的每一次革新都深刻影響著城市的運(yùn)行效率與安全性。近年來,隨著技術(shù)的飛速發(fā)展,交叉路口的監(jiān)測技術(shù)也經(jīng)歷了從傳統(tǒng)感應(yīng)線圈到現(xiàn)代智能交通
    的頭像 發(fā)表于 06-30 11:30 ?637次閱讀

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

    如圖為一個(gè)紅綠燈的控制時(shí)序圖,啟動(dòng)信號導(dǎo)通后,紅綠燈程序開始動(dòng)作。
    的頭像 發(fā)表于 05-29 09:45 ?815次閱讀
    使用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 ?3662次閱讀
    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 ?2316次閱讀
    基于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 ?2183次閱讀

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

    下面是一個(gè)關(guān)于使用Python在幾行代碼中分析城市輪廓線的快速教程。
    的頭像 發(fā)表于 11-07 10:14 ?774次閱讀
    使用<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 ?668次閱讀
    基于51單片機(jī)的<b class='flag-5'>路口交通</b>燈控制系統(tǒng)仿真