最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

基于python的opencv圖像處理實(shí)現(xiàn)對(duì)斑馬線的檢測(cè)示例

 更新時(shí)間:2020年11月29日 17:02:30   作者:舔狗小明  
這篇文章主要介紹了基于python的opencv圖像處理實(shí)現(xiàn)對(duì)斑馬線的檢測(cè)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

基本思路

斑馬線檢測(cè)通過(guò)opencv圖像處理來(lái)進(jìn)行灰度值轉(zhuǎn)換、高斯濾波去噪、閾值處理、腐蝕和膨脹后對(duì)圖像進(jìn)行輪廓檢測(cè),通過(guò)判斷車(chē)輛和行人的位置,以及他們之間的距離信息,當(dāng)車(chē)速到超過(guò)一定閾值時(shí)并且與行人距離較近時(shí),則會(huì)被判定車(chē)輛為未禮讓行人。

在這里插入圖片描述

結(jié)果示例

在這里插入圖片描述

實(shí)驗(yàn)流程

先通過(guò)視頻截取一張圖片來(lái)進(jìn)行測(cè)試,如果結(jié)果滿意之后再嵌套到視頻中,從而達(dá)到想要的效果。

1.預(yù)處理(灰度值轉(zhuǎn)換、高斯濾波去噪、閾值處理、腐蝕和膨脹)> 根據(jù)自己的需求來(lái)修改一些值

#灰度值轉(zhuǎn)換
imgGray = cv2.cvtColor(copy_img,cv2.COLOR_BGR2GRAY)
#高斯濾波去噪
imgBlur = cv2.GaussianBlur(imgGray,(5,5),0)
#閾值處理
ret,thresh = cv2.threshold(imgBlur,127,255,cv2.THRESH_BINARY)
#腐蝕
imgEro = cv2.erode(thresh,kernel1,iterations=2)
#膨脹
imgDia = cv2.dilate(imgEro,kernel2,iterations=4)

預(yù)處理之后(如下圖所示):

在這里插入圖片描述

2.輪廓檢測(cè)

#輪廓檢測(cè)
_,contouts,hie = cv2.findContours(imgDia,cv2.RETR_TREE,cv2.CHAIN_APPROX_NONE)
cnt = contouts
cv2.drawContours(copy_img, cnt, -1, (0, 255, 0), 2)

全部的輪廓(如下圖所示)

在這里插入圖片描述

可以看到這并不是我們想要的,所以我們需要判斷一下位置,選取我們感興趣的區(qū)域。

3.感興趣區(qū)域

根據(jù)自己圖片或視頻的需求來(lái)更改x,y,w,h位置信息數(shù)值。

for i in cnt:
  #坐標(biāo)賦值
  x,y,w,h = cv2.boundingRect(i)
  #roi位置判斷
  if y>350 and y<450 and x<1200 and w>50 and h>10:
    # 畫(huà)出輪廓
    cv2.drawContours(copy_img, i, -1, (0, 255, 0), 2)

獲取roi后完整結(jié)果(如下圖所示)

在這里插入圖片描述

4.完整代碼

import cv2
import numpy as np
#定義兩個(gè)核	(kernel_Ero用于腐蝕,kernel_Dia用于膨脹)
kernel_Ero = np.ones((3,1),np.uint8)
kernel_Dia = np.ones((3,5),np.uint8)

img = cv2.imread("../images/bmx.png")
copy_img = img.copy()
#原圖copy修改尺寸
copy_img = cv2.resize(copy_img,(1600,800))
#灰度值轉(zhuǎn)換
imgGray = cv2.cvtColor(copy_img,cv2.COLOR_BGR2GRAY)
#高斯濾波去噪
imgBlur = cv2.GaussianBlur(imgGray,(5,5),0)
#閾值處理
ret,thresh = cv2.threshold(imgBlur,127,255,cv2.THRESH_BINARY)
#腐蝕
imgEro = cv2.erode(thresh,kernel_Ero,iterations=2)
#膨脹
imgDia = cv2.dilate(imgEro,kernel_Dia,iterations=4)

#輪廓檢測(cè)
_,contouts,hie = cv2.findContours(imgDia,cv2.RETR_TREE,cv2.CHAIN_APPROX_NONE)
cnt = contouts

for i in cnt:
  #坐標(biāo)賦值
  x,y,w,h = cv2.boundingRect(i)
  #roi位置判斷
  if y>350 and y<450 and x<1200 and w>50 and h>10:
    # 畫(huà)出輪廓
    cv2.drawContours(copy_img, i, -1, (0, 255, 0), 2)

cv2.imshow("img",copy_img)
cv2.waitKey(0)
cv2.destroyAllWindows()

總結(jié)

在業(yè)務(wù)需求中這種流程做出來(lái)的結(jié)果并不可行,只不過(guò)是把想要的東西框了出來(lái),但是如果想要對(duì)交通場(chǎng)景判別機(jī)動(dòng)車(chē)是否禮讓行人行為的話則需要對(duì)坐標(biāo)進(jìn)行判斷,可以通過(guò)從第一個(gè)斑馬線的坐標(biāo)到最后一個(gè)斑馬線的坐標(biāo)(橫向)來(lái)畫(huà)出一個(gè)大的矩形框(roi區(qū)域),然后根據(jù)這個(gè)矩形框的坐標(biāo)來(lái)對(duì)機(jī)動(dòng)車(chē)(已有坐標(biāo))坐標(biāo)來(lái)進(jìn)行行為判斷,從而達(dá)到需求。

最后?。?!

第一次接觸opencv!所以請(qǐng)各位視覺(jué)領(lǐng)域的大佬們勿噴我這個(gè)小菜雞?。?狗頭)

代碼量非常少,無(wú)泛化能力,很low的一種做法。。。不過(guò)對(duì)于小白的我來(lái)說(shuō)學(xué)習(xí)opencv還是很有幫助滴!干就完了!奧利給!

到此這篇關(guān)于基于python的opencv圖像處理實(shí)現(xiàn)對(duì)斑馬線的檢測(cè)示例的文章就介紹到這了,更多相關(guān)opencv 斑馬線檢測(cè)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Pycharm安裝報(bào)錯(cuò):Cannot detect a launch configuration解決辦法

    Pycharm安裝報(bào)錯(cuò):Cannot detect a launch confi

    本文主要介紹了Pycharm安裝報(bào)錯(cuò):Cannot detect a launch configuration解決辦法,具有一定的參考價(jià)值,感興趣的可以了解一下
    2025-03-03
  • 淺談python拋出異常、自定義異常, 傳遞異常

    淺談python拋出異常、自定義異常, 傳遞異常

    本文給大家簡(jiǎn)單匯總了下Python中拋出異常、自定義異常,傳遞異常的簡(jiǎn)單應(yīng)用,有需要的小伙伴可以參考下
    2016-06-06
  • TensorFlow實(shí)現(xiàn)AutoEncoder自編碼器

    TensorFlow實(shí)現(xiàn)AutoEncoder自編碼器

    這篇文章主要為大家詳細(xì)介紹了TensorFlow實(shí)現(xiàn)AutoEncoder自編碼器,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • Python腳本文件打包成可執(zhí)行文件的方法

    Python腳本文件打包成可執(zhí)行文件的方法

    這篇文章主要介紹了Python腳本文件打包成可執(zhí)行文件的方法,本主要講解了Python2.X版本的打包方法,對(duì)Python3.X的打包也有簡(jiǎn)單介紹,需要的朋友可以參考下
    2015-06-06
  • python如何基于redis實(shí)現(xiàn)ip代理池

    python如何基于redis實(shí)現(xiàn)ip代理池

    這篇文章主要介紹了python如何基于redis實(shí)現(xiàn)ip代理池,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-01-01
  • python使用多線程查詢數(shù)據(jù)庫(kù)的實(shí)現(xiàn)示例

    python使用多線程查詢數(shù)據(jù)庫(kù)的實(shí)現(xiàn)示例

    這篇文章主要介紹了python使用多線程查詢數(shù)據(jù)庫(kù)的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • 不知道這5種下劃線的含義,你就不算真的會(huì)Python!

    不知道這5種下劃線的含義,你就不算真的會(huì)Python!

    Python是一種高級(jí)程序語(yǔ)言,其核心設(shè)計(jì)哲學(xué)是代碼可讀性和語(yǔ)法,能夠讓程序員用很少的代碼來(lái)表達(dá)自己的想法。這篇文章主要介紹了不知道這5種下劃線的含義,你就不算真的會(huì)Python!對(duì)此標(biāo)題感興趣的朋友一起閱讀本文吧
    2018-10-10
  • python單例模式實(shí)例分析

    python單例模式實(shí)例分析

    這篇文章主要介紹了python單例模式,實(shí)例分析了單例模式的原理與使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-04-04
  • python如何把字符串類型list轉(zhuǎn)換成list

    python如何把字符串類型list轉(zhuǎn)換成list

    這篇文章主要介紹了python如何吧字符串類型list轉(zhuǎn)換成list,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-02-02
  • Python3.8官網(wǎng)文檔之類的基礎(chǔ)語(yǔ)法閱讀

    Python3.8官網(wǎng)文檔之類的基礎(chǔ)語(yǔ)法閱讀

    類提供了一種組合數(shù)據(jù)和功能的方法,今天通過(guò)本文給大家分享Python3.8官網(wǎng)文檔之類的基礎(chǔ)語(yǔ)法閱讀知識(shí),感興趣的朋友跟隨小編一起看看吧
    2021-09-09

最新評(píng)論

葵青区| 新野县| 大悟县| 岑溪市| 德兴市| 怀化市| 垦利县| 垣曲县| 堆龙德庆县| 固镇县| 教育| 华池县| 通城县| 孝义市| 越西县| 含山县| 南华县| 鄂托克前旗| 都江堰市| 依兰县| 定陶县| 彭阳县| 九龙城区| 馆陶县| 长治市| 安徽省| 上栗县| 塔河县| 齐齐哈尔市| 兴安盟| 宁津县| 高唐县| 永年县| 梁山县| 丹东市| 通渭县| 龙泉市| 谷城县| 汽车| 新化县| 聂荣县|