


Bagaimana untuk mengesan dan mengenali plat lesen menggunakan Python?
Penterjemah |. Bugatti
Penyemak |. Kawalan akses kenderaan, dsb. Teknologi ini menggabungkan penglihatan komputer dan kecerdasan buatan.
Artikel ini akan menggunakan Python untuk mencipta program pengesanan dan pengecaman plat lesen. Program ini memproses imej input, mengesan dan mengenali plat lesen, dan akhirnya memaparkan aksara plat lesen sebagai output.
1 Cipta persekitaran Python
Untuk melengkapkan tutorial ini dengan mudah, anda perlu biasa dengan asas Python. Persekitaran program harus diwujudkan terlebih dahulu.
Sebelum anda memulakan pengaturcaraan, anda perlu memasang beberapa perpustakaan dalam persekitaran anda. Buka mana-mana IDE Python dan buat fail Python. Jalankan arahan pada terminal untuk memasang perpustakaan yang sepadan. Anda sepatutnya mempunyai Python PIP pra-pasang pada komputer anda.
OpenCV-Python: Anda akan menggunakan perpustakaan ini untuk pramemproses imej input dan memaparkan imej output individu. pip install OpenCV-Pythonimutils: Anda akan menggunakan perpustakaan ini untuk memangkas imej input asal kepada lebar yang dikehendaki. pip install imutils- pytesseract: Anda akan menggunakan perpustakaan ini untuk mengekstrak aksara plat lesen dan menukarnya kepada rentetan. pip install pytesseract Pustaka pytesseract bergantung pada enjin Tesseract OCR untuk pengecaman aksara.
- 2. Bagaimana hendak memasang Tesseract OCR pada komputer anda?
Tesseract OCR ialah enjin yang boleh mengecam aksara bahasa. Sebelum menggunakan perpustakaan pytesseract, anda harus memasangnya pada komputer anda. Langkah-langkahnya adalah seperti berikut:
1. Buka mana-mana penyemak imbas berasaskan Chrome.
2. Muat turun pemasang OCR Tesseract.
3. Jalankan pemasang dan pasangkannya seperti mana-mana program lain.
Selepas menyediakan persekitaran dan memasang tesseract OCR, anda boleh menulis atur cara.
1 Import perpustakaan
Mula-mula import perpustakaan yang dipasang dalam persekitaran. Mengimport perpustakaan membolehkan anda memanggil dan menggunakan fungsinya dalam projek anda. Anda memerlukan Import perpustakaan OpenCV-Python dalam bentuk cv2. Import perpustakaan lain menggunakan nama yang sama seperti semasa dipasang.
2. Dapatkan input
- dan halakan pytesseract ke lokasi di mana enjin Tesseract dipasang. Gunakan fungsi cv2.imread untuk mengambil imej kereta sebagai input. Gantikan nama imej dengan nama imej yang anda gunakan. Simpan imej dalam folder yang sama dengan projek anda untuk kemudahan penggunaan.
- Anda boleh menggantikan imej input di bawah dengan imej yang ingin anda gunakan.
4. Mengesan plat lesen di hujung input
pytesseract.pytesseract.tesseract_cmd = 'C:\Program Files\Tesseract-OCR\tesseract.exe' original_image = cv2.imread('image3.jpeg')Mengesan plat lesen ialah proses menentukan bahagian kereta yang mempunyai watak plat.
(1) Lakukan pengesanan tepi
Mula-mula panggil fungsi cv2.Canny, yang boleh mengesan tepi prapemprosesan secara automatik pada imej.original_image = imutils.resize(original_image, width=500 ) gray_image = cv2.cvtColor(original_image, cv2.COLOR_BGR2GRAY) gray_image = cv2.bilateralFilter(gray_image, 11, 17, 17)Kami akan mencari kontur melalui tepi ini.
(2) Cari kontur
Panggil fungsi cv2.findContours dan hantar salinan imej tepi. Fungsi ini akan mengesan kontur. Gunakan fungsi cv2.drawContours untuk melukis kontur yang dikesan pada imej asal. Akhir sekali, keluarkan imej asal dengan semua kontur yang boleh dilihat dilukis.
Program ini melukis semua kontur yang ditemui pada imej kereta.
edged_image = cv2.Canny(gray_image, 30,200)
Setelah anda menemui kontur, anda perlu menapisnya untuk mengenal pasti kontur calon yang terbaik.
(3) Tapis konturcontours, new = cv2.findContours(edged_image.copy(), cv2.RETR_LIST, cv2.CHAIN_APPROX_SIMPLE) img1 = original_image.copy() cv2.drawContours(img1, contours, -1, (0, 255, 0), 3) cv2.imshow("img1", img1)Tapis kontur berdasarkan keluasan minimum 30. Garis besar yang lebih kecil daripada kawasan ini diabaikan kerana ia tidak mungkin merupakan garis besar plat lesen. Buat salinan imej asal dan lukis 30 kontur pertama pada imej. Akhirnya, imej dipaparkan.
Akhir sekali, anda perlu mengulangi garis besar yang ditapis untuk menentukan yang mana satu plat lesen.
(4) Lintas 30 kontur pertamacontours = sorted(contours, key = cv2.contourArea, reverse = True)[:30] # stores the license plate contour screenCnt = None img2 = original_image.copy() # draws top 30 contours cv2.drawContours(img2, contours, -1, (0, 255, 0), 3) cv2.imshow("img2", img2)Buat gelung for yang merentasi kontur. Cari kontur dengan empat bucu dan tentukan perimeter dan koordinatnya. Simpan imej yang mengandungi garis besar plat lesen. Akhir sekali, garis besar plat lesen dilukis pada imej asal dan dipaparkan.
5.识别检测到的车牌
识别车牌意味着读取已裁剪车牌图像上的字符。加载之前存储的车牌图像并显示它。然后,调用pytesseract.image_to_string函数,传递已裁剪的车牌图像。这个函数将图像中的字符转换成字符串。
# filename of the cropped license plate image cropped_License_Plate = './7.png' cv2.imshow("cropped license plate", cv2.imread(cropped_License_Plate)) # converts the license plate characters to string text = pytesseract.image_to_string(cropped_License_Plate, lang='eng')
已裁剪的车牌如下所示。上面的字符将是您稍后在屏幕上输出的内容。
检测并识别车牌之后,您就可以显示输出了。
6.显示输出
这是最后一步。您将提取的文本输出到屏幕上。该文本含有车牌字符。
print("License plate is:", text) cv2.waitKey(0) cv2.destroyAllWindows()
程序的预期输出应该如下图所示:
车牌文本可以在终端上看到。
三、磨砺您的Python技能
用Python检测和识别车牌是一个有意思的项目。它有挑战性,所以应该会帮助您学到关于Python的更多知识。
说到编程,实际运用是掌握一门语言的关键。为了锻炼技能,您需要开发有意思的项目。
原文链接:https://www.makeuseof.com/python-car-license-plates-detect-and-recognize/
Atas ialah kandungan terperinci Bagaimana untuk mengesan dan mengenali plat lesen menggunakan Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Slicingapythonlistisdoneusingthesyntaxlist [Mula: berhenti: langkah] .here'showitworks: 1) startistheindexofthefirstelementtoinclude.2) stopistheindexofthefirstelementToexclude.3)

NumpyallowsforvariousoperationsonArrays: 1) BasicarithmeticLikeaddition, penolakan, pendaraban, danDivision; 2) Pengerjaan AdvancedSuchasmatrixmultiplication; 3) Element-WiseOperationswithoutExplicitLoops;

Arraysinpython, terutamanya yang ada, adalah, penawaran yang ditawarkan.1) numpyarraysenableFandlingoflargedataSetsandClexPleperationsLikemovingAverages.2)

ListsSandnumpyAraySInpythonHavedifferMememoryFootPrints: listsaremoreflexibleButlessMememory-cekap, pemanmak

ToensurePythonscriptsbehaveCorrectlyCrossdevelopment, pementasan, dan produksi, usetheseStregies: 1) Environmentvariablesforsimplesettings, 2) ConfigurationFilesfilePlexSetups, dan3) Dynamicloadingforadaptability.EachMethodeFerPiReFiteReFiteShitsandReFitSandRiteFitSandRiteFitSandRiteFiteSandRiteReFitSandRiteReFitSandRiteFiteShiteSandReFiteShitsandReShitsAnfitsEts,

Sintaks asas untuk pengirim senarai python adalah senarai [Mula: Berhenti: Langkah]. 1. Start adalah indeks elemen pertama yang disertakan, 2.Stop adalah indeks elemen pertama yang dikecualikan, dan 3. Step menentukan saiz langkah antara elemen. Hirisan tidak hanya digunakan untuk mengekstrak data, tetapi juga untuk mengubah suai dan membalikkan senarai.

ListsOutPerFormAraySin: 1) DynamicsizingandFrequentInsertions/Deletions, 2) StoringHeterogeneousData, dan3) MemoryeficiencyForSparsedata, ButmayHaveslightPerformancecostSincertaor.

ToConvertapythonarraytoalist, usethelist () constructororageneratorexpression.1) importTheArrayModuleAndCreateeanArray.2) uselist (arr) atau [xforxinarr] toConvertittoalist, urusanPengerasiPormanceAndMemoryeficiencyForlargedatasets.


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

SecLists
SecLists ialah rakan penguji keselamatan muktamad. Ia ialah koleksi pelbagai jenis senarai yang kerap digunakan semasa penilaian keselamatan, semuanya di satu tempat. SecLists membantu menjadikan ujian keselamatan lebih cekap dan produktif dengan menyediakan semua senarai yang mungkin diperlukan oleh penguji keselamatan dengan mudah. Jenis senarai termasuk nama pengguna, kata laluan, URL, muatan kabur, corak data sensitif, cangkerang web dan banyak lagi. Penguji hanya boleh menarik repositori ini ke mesin ujian baharu dan dia akan mempunyai akses kepada setiap jenis senarai yang dia perlukan.

Muat turun versi mac editor Atom
Editor sumber terbuka yang paling popular

EditPlus versi Cina retak
Saiz kecil, penyerlahan sintaks, tidak menyokong fungsi gesaan kod

PhpStorm versi Mac
Alat pembangunan bersepadu PHP profesional terkini (2018.2.1).

DVWA
Damn Vulnerable Web App (DVWA) ialah aplikasi web PHP/MySQL yang sangat terdedah. Matlamat utamanya adalah untuk menjadi bantuan bagi profesional keselamatan untuk menguji kemahiran dan alatan mereka dalam persekitaran undang-undang, untuk membantu pembangun web lebih memahami proses mengamankan aplikasi web, dan untuk membantu guru/pelajar mengajar/belajar dalam persekitaran bilik darjah Aplikasi web keselamatan. Matlamat DVWA adalah untuk mempraktikkan beberapa kelemahan web yang paling biasa melalui antara muka yang mudah dan mudah, dengan pelbagai tahap kesukaran. Sila ambil perhatian bahawa perisian ini
