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

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

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

基本思路

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

在這里插入圖片描述

結(jié)果示例

在這里插入圖片描述

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

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

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

#灰度值轉(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.輪廓檢測

#輪廓檢測
_,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ù)自己圖片或視頻的需求來更改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:
    # 畫出輪廓
    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)

#輪廓檢測
_,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:
    # 畫出輪廓
    cv2.drawContours(copy_img, i, -1, (0, 255, 0), 2)

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

總結(jié)

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

最后?。。?/strong>

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

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

到此這篇關(guān)于基于python的opencv圖像處理實(shí)現(xiàn)對(duì)斑馬線的檢測示例的文章就介紹到這了,更多相關(guān)opencv 斑馬線檢測內(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拋出異常、自定義異常, 傳遞異常

    本文給大家簡單匯總了下Python中拋出異常、自定義異常,傳遞異常的簡單應(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的打包也有簡單介紹,需要的朋友可以參考下
    2015-06-06
  • python如何基于redis實(shí)現(xiàn)ip代理池

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

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

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

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

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

    Python是一種高級(jí)程序語言,其核心設(shè)計(jì)哲學(xué)是代碼可讀性和語法,能夠讓程序員用很少的代碼來表達(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,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-02-02
  • Python3.8官網(wǎng)文檔之類的基礎(chǔ)語法閱讀

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

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

最新評(píng)論

临海市| 九寨沟县| 翁牛特旗| 乌鲁木齐县| 永州市| 兴安盟| 贵溪市| 资源县| 讷河市| 大同县| 墨竹工卡县| 互助| 申扎县| 蕲春县| 米泉市| 博野县| 剑河县| 广灵县| 武隆县| 承德县| 安康市| 侯马市| 荣成市| 临泽县| 甘孜| 桐庐县| 德格县| 库伦旗| 巍山| 溧阳市| 彰武县| 渑池县| 黎城县| 嘉兴市| 宜宾市| 邯郸市| 拉萨市| 佛冈县| 南投市| 沂水县| 巴彦县|