cari
Rumahpembangunan bahagian belakangTutorial PythonBagaimana untuk mengesan dan mengenali plat lesen menggunakan Python?

Bagaimana untuk mengesan dan mengenali plat lesen menggunakan Python?

Apr 14, 2023 pm 12:34 PM
pythonmengenalpastiplat lesen

​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-Python

imutils: 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.

3. Input praproses

Laraskan lebar imej kepada 500 piksel dan kemudian tukar imej kepada skala kelabu kerana fungsi pengesanan tepi cerdik sahaja pada imej skala kelabu. Akhir sekali, fungsi Penapis dua hala dipanggil untuk mengurangkan hingar imej.

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 kontur
contours, 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.

Bagaimana untuk mengesan dan mengenali plat lesen menggunakan Python?

Kini terdapat lebih sedikit garis besar berbanding pada mulanya. Satu-satunya kontur yang dilukis ialah kontur yang lebih kurang mengandungi plat lesen.

Akhir sekali, anda perlu mengulangi garis besar yang ditapis untuk menentukan yang mana satu plat lesen.

(4) Lintas 30 kontur pertama
contours = 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.

Bagaimana untuk mengesan dan mengenali plat lesen menggunakan Python?

Selepas gelung, program telah mengenal pasti garis besar yang mengandungi plat lesen.

Bagaimana untuk mengesan dan mengenali plat lesen menggunakan Python?

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')

已裁剪的车牌如下所示。上面的字符将是您稍后在屏幕上输出的内容。

Bagaimana untuk mengesan dan mengenali plat lesen menggunakan Python?

检测并识别车牌之后,您就可以显示输出了。

6.显示输出

这是最后一步。您将提取的文本输出到屏幕上。该文本含有车牌字符。

print("License plate is:", text)
cv2.waitKey(0)
cv2.destroyAllWindows()

程序的预期输出应该如下图所示:

Bagaimana untuk mengesan dan mengenali plat lesen menggunakan Python?

车牌文本可以在终端上看到。

三、磨砺您的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!

Kenyataan
Artikel ini dikembalikan pada:51CTO.COM. Jika ada pelanggaran, sila hubungi admin@php.cn Padam
Bagaimana anda memotong senarai python?Bagaimana anda memotong senarai python?May 02, 2025 am 12:14 AM

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

Apakah beberapa operasi biasa yang boleh dilakukan pada array numpy?Apakah beberapa operasi biasa yang boleh dilakukan pada array numpy?May 02, 2025 am 12:09 AM

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

Bagaimana tatasusunan digunakan dalam analisis data dengan python?Bagaimana tatasusunan digunakan dalam analisis data dengan python?May 02, 2025 am 12:09 AM

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

Bagaimanakah jejak memori senarai dibandingkan dengan jejak memori array di Python?Bagaimanakah jejak memori senarai dibandingkan dengan jejak memori array di Python?May 02, 2025 am 12:08 AM

ListsSandnumpyAraySInpythonHavedifferMememoryFootPrints: listsaremoreflexibleButlessMememory-cekap, pemanmak

Bagaimana anda mengendalikan konfigurasi khusus persekitaran semasa menggunakan skrip python yang boleh dilaksanakan?Bagaimana anda mengendalikan konfigurasi khusus persekitaran semasa menggunakan skrip python yang boleh dilaksanakan?May 02, 2025 am 12:07 AM

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

Bagaimana anda memotong array python?Bagaimana anda memotong array python?May 01, 2025 am 12:18 AM

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.

Di bawah keadaan apa yang mungkin senarai lebih baik daripada tatasusunan?Di bawah keadaan apa yang mungkin senarai lebih baik daripada tatasusunan?May 01, 2025 am 12:06 AM

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

Bagaimana anda boleh menukar array python ke senarai python?Bagaimana anda boleh menukar array python ke senarai python?May 01, 2025 am 12:05 AM

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

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

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

Alat panas

SecLists

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

Muat turun versi mac editor Atom

Editor sumber terbuka yang paling popular

EditPlus versi Cina retak

EditPlus versi Cina retak

Saiz kecil, penyerlahan sintaks, tidak menyokong fungsi gesaan kod

PhpStorm versi Mac

PhpStorm versi Mac

Alat pembangunan bersepadu PHP profesional terkini (2018.2.1).

DVWA

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