資料介紹
描述
print('Hello! Thanks for reading this project')
在這篇文章中,我將解釋車牌檢測系統。
你興奮嗎?好吧……讓我們開始吧。
要構建這個項目,您需要 OpenCV 和 imutils。您可以使用此命令安裝它。
- 打開您的命令提示符并輸入。
pip install opencv-python
pip install imutils
為什么是imutils?
使用 OpenCV 以及 Python 2.7 和 Python 3 使基本圖像處理功能(如平移、旋轉、調整大小、骨架化、顯示 Matplotlib 圖像、排序輪廓、檢測邊緣等)更容易的一系列便利功能。
現在,我們已經安裝了這個項目所需的包。讓我們開始建造吧。
1. Import packages
. 在這里,我們正在導入 OpenCV 和 imutils。
import cv2
import imutils as im
2. Read Image file
從特定文件夾。最好在源文件目錄下。
# specify the path
input = 'car5.jpg'
image = cv2.imread(input)
3. Resizing
輸入圖像,因為每個圖像都有不同的形狀。因此,調整大小使所有內容都采用一種標準尺寸。
newwidth = 500
resize_image = im.resize(image, width=newwidth)
4. Color conversion
在這里,我們將輸入顏色(BGR)圖像轉換為灰度圖像。因為canny邊緣檢測器輸入圖像應該是單通道8位輸入圖像。
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
5. Image Smoothing
過濾可能是圖像處理中最基本的操作。高斯和中值濾波器傾向于模糊邊緣。所以我將應用一個雙邊濾波器,它可以很好地減少不需要的噪聲,同時保持邊緣相當清晰。但是,與大多數過濾器相比,它非常慢。
給定參數:
src:1 或 3 通道圖像
d:過濾期間使用的每個像素鄰域的直徑。
sigmaColor:在顏色空間中過濾 sigma。
sigmaSpace:在坐標空間中過濾sigma。
為簡單起見,您可以將 2 個 sigma 值設置為相同。如果它們很小(< 10),則濾鏡不會有太大的效果,而如果它們很大(> 150),它們會產生非常強烈的效果,使圖像看起來“卡通”??。
欲了解更多信息:https ://docs.opencv.org/trunk/d4/d86/group__imgproc__filter.html#ga9d7064d478c95d60003cf839430737ed
d, sigmaColor, sigmaSpace = 10,15,15
filtered_img = cv2.bilateralFilter(gray, d, sigmaColor, sigmaSpace)
6. Edge Detection
Canny Edge Detection 是一種流行的邊緣檢測算法。第一個參數是我們的輸入圖像。第二個和第三個參數分別是我們的下限和上限。
好的!什么是下限和上限?
Canny 使用兩個閾值(上限和下限)
- 如果像素梯度大于上限閾值,則接受像素作為邊緣。
- 如果像素梯度低于較低值,則將其拒絕。
- 如果像素梯度在兩個閾值之間,那么只有當它連接到高于閾值上限的像素時才會被接受。
?
?
# Find Edges in the grayscale image
lower, upper = 170, 200
edged = cv2.Canny(filtered_img, lower, upper)
?
7. Contours
輪廓被定義為連接沿圖像邊界具有相同強度的所有點的線。輪廓用于形狀分析和對象檢測。輪廓適用于二值圖像。在此處閱讀有關此內容的更多信息。
cnts,hir = cv2.findContours(edged.copy(), cv2.RETR_LIST, cv2.CHAIN_APPROX_SIMPLE)
它將返回圖像中所有輪廓的 Python 列表。每個輪廓都是對象的 (x, y) 坐標的 numpy 數組。像這樣
[[[218 353]]
[[219 376]]
[[331 375]]
[[328 352]]]
它將返回這么多輪廓坐標。所以,我們必須根據它的面積來整理列表。python 中的 sorted 函數在這里很有用。
參數:
- 可迭代 - 輪廓列表
- 可以提供 key 函數來自定義排序順序,我們將使用區域進行排序。
- 對于降序列??表,可以將反向標志設置為 true。
# Return list with 10 biggest contour area
cnts=sorted(cnts, key = cv2.contourArea, reverse = True)[:10]
print("Number of Contours found : " + str(len(cnts))) # 10
8. Number plate Detection
最后,我們有大面積的輪廓及其坐標。
循環遍歷我們的輪廓以找到車牌的最佳輪廓。
好的!現在我們將把循環內部發生的事情分解成碎片。
count = 0
for c in cnts:
perimeter = cv2.arcLength(c, True)
epsilon = 0.01 * perimeter
approx = cv2.approxPolyDP(c, epsilon , True)
if len(approx) == 4: # Select the contour with 4 corners
print(approx)
NumberPlateCnt = approx #This is our approx Number Plate Contour
break
首先,我們必須找到周長。它也稱為弧長。
周長是二維形狀周圍的距離。
第一個參數是輪廓點,True 指定形狀是否為閉合輪廓。
perimeter = cv2.arcLength(c,True)
接下來,輪廓逼近
說明來源:OpenCV Documentation要理解這個,假設你試圖在圖像中找到一個正方形,但是由于圖像中的一些問題,你沒有得到一個完美的正方形,而是一個“壞形狀”(如第一下圖)。現在您可以使用此函數來近似形狀。在此,第二個參數稱為epsilon
,它是從輪廓到近似輪廓的最大距離。它是一個精度參數。需要明智地選擇epsilon
以獲得正確的輸出。
epsilon = 0.01 * perimeter
approx = cv2.approxPolyDP(c, epsilon , True)
最后,選擇具有 4 個角的輪廓。
if len(approx) == 4: # Select the contour with 4 corners
print(approx)
NumberPlateCnt = approx #This is our approx Number Plate Contour
break
9. Draw Contours
# Draw all contours
# -1 signifies drawing all contours
cv2.drawContours(image, [NumberPlateCnt], -1, (255,0,0), 2)
大多數讀者都沒有讀完博客,但你做到了,因為你很特別,你不只是放棄閱讀。
?
?
- 基于LABVIEW的車牌識別系統資料 64次下載
- 基于MATLAB的車牌識別系統 17次下載
- 如何使用機器視覺實現汽車牌照的識別 15次下載
- 使用Adaboost算法實現車牌檢測在OpenCV上實現的研究分析 7次下載
- 如何使用FPGA進行汽車牌照自動檢測系統硬件實現 4次下載
- 如何使用FPGA進行車牌識別系統的設計與實現?詳細資料免費下載 33次下載
- 基于數學形態學和Hough變換的車牌圖像檢測及定位算法解析 0次下載
- 智能交通系統之車牌定位及GPS定位經典案例匯總 8次下載
- 利用邊緣檢測結合Hough變換的車牌圖像檢測及定位算法 6次下載
- 車牌定位算法的研究及設計 6次下載
- 圖像處理和投影的車牌定位方法
- 復雜車輛圖像中的車牌定位
- 基于DSP的圖像處理在車牌識別中的應用
- 車牌識別系統的設計與實現
- 一種車牌識別系統中的混合車牌定位方法
- 項目分享|基于ELF 1開發板的車牌識別系統 333次閱讀
- 車牌定位方法的類型及應用特點研究 4431次閱讀
- 車牌識別是如何實現的 4341次閱讀
- 什么是智能電子車牌?有什么技術優勢? 8236次閱讀
- 新能源車牌不能過戶嗎_新能源車牌還有哪些規定_新能源車牌照政策 10.2w次閱讀
- 新能源車牌使用要求_新能源車牌有什么好處_新能源車牌與普通車牌有何區別 2.4w次閱讀
- 車牌識別停車場系統安裝方法及注意事項 2w次閱讀
- 車牌識別停車場系統的工作原理詳解 4.3w次閱讀
- 車牌識別哪家強_車牌識別品牌全國排名榜前十出爐 4.7w次閱讀
- 車牌識別技術的發展及意義_車牌識別系統原理介紹 1.6w次閱讀
- 車牌識別能破解么_怎么破解小區車牌識別 37.9w次閱讀
- 車牌識別錯誤_車牌識別不了解決辦法 3.9w次閱讀
- 車牌識別系統技術指標及選購方法 1266次閱讀
- 車牌識別系統的識別原理及觸發方式 3.9w次閱讀
- 車牌識別系統的結構組成與應用 4965次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數據手冊
- 1.06 MB | 532次下載 | 免費
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費
- 5元宇宙深度解析—未來的未來-風口還是泡沫
- 6.40 MB | 227次下載 | 免費
- 6迪文DGUS開發指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537798次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191187次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多