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

Python中OpenCV實(shí)現(xiàn)簡(jiǎn)單車牌字符切割

 更新時(shí)間:2021年06月11日 15:40:05   作者:圈er  
本文將結(jié)合實(shí)例代碼,在Jupyter Notebook上使用Python+opencv實(shí)現(xiàn)如下簡(jiǎn)單車牌字符切割。感興趣的小伙伴可以參考一下

在Jupyter Notebook上使用Python+opencv實(shí)現(xiàn)如下簡(jiǎn)單車牌字符切割。關(guān)于opencv庫(kù)的安裝可以參考:Python下opencv庫(kù)的安裝過(guò)程與一些問(wèn)題匯總。

1.實(shí)現(xiàn)代碼

import cv2
import numpy as np
import matplotlib.pyplot as plt
from PIL import Image

#讀取原圖片
image1=cv2.imread("123456.jpg")
cv2.imshow("image1", image1)

#灰度化處理
image1_1=cv2.cvtColor(image1,cv2.COLOR_BGR2GRAY)
cv2.imshow("image1_1", image1_1)

#圖像反色
h,w = image1_1.shape
image1_2=image1_1.copy()
for i in range(h):
    for j in range(w):
        image1_2[i,j] = 255-image1_2[i,j]
cv2.imshow('image1_2', image1_2)

#圖像二值化
ret,image2 = cv2.threshold(image1_2, 100, 255, cv2.THRESH_BINARY)
cv2.imshow('image2', image2)

#水平投影
h1,w1=image2.shape #返回高和寬
image3=image2.copy()
a = [0 for z in range(0, h1)] #初始化一個(gè)長(zhǎng)度為w的數(shù)組,用于記錄每一行的黑點(diǎn)個(gè)數(shù) 
#記錄每一行的波峰
for j in range(0,h1):  
    for i in range(0,w1):  
        if  image3[j,i]==0: 
            a[j]+=1 
            image3[j,i]=255
            
for j in range(0,h1):  
    for i in range(0,a[j]):   
        image3[j,i]=0    
        
plt.imshow(image3,cmap=plt.gray())#灰度圖正確的表示方法
plt.show()
cv2.imshow('image3',image3)  

#垂直投影
h2,w2=image2.shape #返回高和寬
image4=image2.copy()
b = [0 for z in range(0, w2)]  #b = [0,0,0,0,0,0,0,0,0,0,...,0,0]初始化一個(gè)長(zhǎng)度為w的數(shù)組,用于記錄每一列的黑點(diǎn)個(gè)數(shù)
#記錄每一列的波峰
for j in range(0,w2): #遍歷一列 
    for i in range(0,h2):  #遍歷一行
        if  image4[i,j]==0:  #如果該點(diǎn)為黑點(diǎn)
            b[j]+=1  #該列的計(jì)數(shù)器加一,最后統(tǒng)計(jì)出每一列的黑點(diǎn)個(gè)數(shù)  
            image4[i,j]=255  #記錄完后將其變?yōu)榘咨?,相?dāng)于擦去原圖黑色部分
            
for j in range(0,w2):  
    for i in range((h2-b[j]),h2):  #從該列應(yīng)該變黑的最頂部的點(diǎn)開(kāi)始向最底部涂黑
        image4[i,j]=0   #涂黑
        
plt.imshow(image4,cmap=plt.gray())
plt.show()
cv2.imshow('image4',image4) 

#分割字符
Position = []
start = 0
a_Start = []
a_End = []

#根據(jù)水平投影獲取垂直分割位置
for i in range(len(a)):
    if a[i] > 0 and start ==0:
        a_Start.append(i)
        start = 1
    if a[i] <= 0 and start == 1:
        a_End.append(i)
        start = 0

#分割行,分割之后再進(jìn)行列分割并保存分割位置
for i in range(len(a_Start)):
    #獲取行圖像
    cropImg = image2[a_Start[i]:a_End[i], 0:w1]
    #對(duì)行圖像進(jìn)行垂直投影
    bstart = 0
    bend = 0
    b_Start = 0
    b_End = 0
    for j in range(len(b)):
        if b[j] > 0 and bstart ==0:
            b_Start =j
            bstart = 1
            bend=0
        if b[j] <= 0 and bstart == 1:
            b_End =j
            bstart = 0
            bend=1
        if bend == 1:
            Position.append([b_Start,a_Start[i],b_End,a_End[i]])
            bend =0
image2 = cv2.cvtColor(image2, cv2.COLOR_BGR2RGB)#將灰度圖轉(zhuǎn)為RGB彩圖

#根據(jù)確定的位置分割字符
for m in range(len(Position)):
    cv2.rectangle(image2, (Position[m][0],Position[m][1]), (Position[m][2],Position[m][3]), (0, 0, 255), 2)#第一個(gè)參數(shù)是原圖;第二個(gè)參數(shù)是矩陣的左上點(diǎn)坐標(biāo);第三個(gè)參數(shù)是矩陣的右下點(diǎn)坐標(biāo);第四個(gè)參數(shù)是畫(huà)線對(duì)應(yīng)的rgb顏色;第五個(gè)參數(shù)是所畫(huà)的線的寬度
cv2.imshow('rect',image2)
cv2.waitKey(0)

2.運(yùn)行結(jié)果

3. 遇到的問(wèn)題及解決方法

對(duì)于二值化后的灰度圖,在確定了各個(gè)字符坐標(biāo)后,使用cv2.rectangle()方法畫(huà)矩形框:cv2.rectangle(image2, (Position[m][0],Position[m][1]), (Position[m][2],Position[m][3]), (0, 255, 0), 2)。其中,第一個(gè)參數(shù)表示原圖,第二個(gè)參數(shù)表示矩陣的左上點(diǎn)坐標(biāo),第三個(gè)參數(shù)表示矩陣的右下點(diǎn)坐標(biāo);第四個(gè)參數(shù)是畫(huà)線對(duì)應(yīng)的RGB顏色,第五個(gè)參數(shù)是畫(huà)線寬度。在設(shè)置RGB顏色時(shí)發(fā)現(xiàn)矩形框顏色只能顯示為黑色和白色,原因是在二值圖上畫(huà)圖顏色沒(méi)有三通道,無(wú)法顯示彩色圖像。

解決方法:將灰度圖轉(zhuǎn)換為RGB彩圖。代碼為image2 = cv2.cvtColor(image2, cv2.COLOR_BGR2RGB)。

到此這篇關(guān)于Python中OpenCV實(shí)現(xiàn)簡(jiǎn)單車牌字符切割的文章就介紹到這了,更多相關(guān)OpenCV 車牌字符切割內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 使用Dajngo 通過(guò)代碼添加xadmin用戶和權(quán)限(組)

    使用Dajngo 通過(guò)代碼添加xadmin用戶和權(quán)限(組)

    這篇文章主要介紹了使用Dajngo 通過(guò)代碼添加xadmin用戶和權(quán)限(組),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-07-07
  • OpenCV如何去除圖片中的陰影的實(shí)現(xiàn)

    OpenCV如何去除圖片中的陰影的實(shí)現(xiàn)

    這篇文章主要介紹了OpenCV如何去除圖片中的陰影的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • python后端接收前端回傳的文件方法

    python后端接收前端回傳的文件方法

    今天小編就為大家分享一篇python后端接收前端回傳的文件方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-01-01
  • Python實(shí)現(xiàn)爬取并分析電商評(píng)論

    Python實(shí)現(xiàn)爬取并分析電商評(píng)論

    這篇文章主要介紹了Python實(shí)現(xiàn)爬取并分析電商評(píng)論,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-06-06
  • TensorFlow高效讀取數(shù)據(jù)的方法示例

    TensorFlow高效讀取數(shù)據(jù)的方法示例

    這篇文章主要介紹了TensorFlow高效讀取數(shù)據(jù)的方法示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-02-02
  • Python3使用SMTP發(fā)送帶附件郵件

    Python3使用SMTP發(fā)送帶附件郵件

    這篇文章主要為大家詳細(xì)介紹了Python3使用SMTP發(fā)送帶附件郵件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-06-06
  • Pandas中DataFrame數(shù)據(jù)刪除詳情

    Pandas中DataFrame數(shù)據(jù)刪除詳情

    這篇文章主要以介紹的是Pandas中DataFrame的數(shù)據(jù)刪除的相關(guān)資料,主要使用drop、del方式,需要的朋友可以參考下面文章的具體內(nèi)容
    2021-09-09
  • 使用Python創(chuàng)建一個(gè)文件夾結(jié)構(gòu)生成器

    使用Python創(chuàng)建一個(gè)文件夾結(jié)構(gòu)生成器

    這篇文章主要為大家詳細(xì)介紹了如何使用Python創(chuàng)建一個(gè)文件夾結(jié)構(gòu)生成器,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2025-01-01
  • Python入門之modf()方法的使用

    Python入門之modf()方法的使用

    這篇文章主要介紹了Python入門之modf()方法的使用,是Python學(xué)習(xí)當(dāng)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-05-05
  • Python如何在main中調(diào)用函數(shù)內(nèi)的函數(shù)方式

    Python如何在main中調(diào)用函數(shù)內(nèi)的函數(shù)方式

    這篇文章主要介紹了Python如何在main中調(diào)用函數(shù)內(nèi)的函數(shù)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-06-06

最新評(píng)論

田林县| 义马市| 芮城县| 东明县| 碌曲县| 昌邑市| 惠水县| 揭阳市| 油尖旺区| 关岭| 武乡县| 电白县| 上高县| 西藏| 淮北市| 依安县| 唐河县| 长汀县| 锦屏县| 青铜峡市| 海城市| 日土县| 万源市| 沾化县| 柘荣县| 安岳县| 栖霞市| 开阳县| 财经| 南华县| 新河县| 攀枝花市| 射洪县| 海门市| 乌兰县| 崇文区| 揭东县| 兴仁县| 淳化县| 凤山市| 抚宁县|