Python plaka tespit ve yazdırma uygulaması doğru çalışmıyor

485264

Hectopat
Katılım
21 Ağustos 2021
Mesajlar
32
Python'dan OpenCV, numpy, imutils, pyteserract kütüphanelerini kullanarak bir kod yazmaya başladım fakat resimlerde bazen hiç tespit etme olmuyor bazılarında ise direkt arabanın kaputunu gövdesini falan görüyor. Sıkıntıyı açıklayabilecek var mı? İyi sosyaller.

Kod:
import cv2.
import imutils.
import numpy as np.
import pytesseract.
pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe'

img = cv2.imread('A:\Yazilim\Plaka_Tanima\image_path/5.jpg',cv2.IMREAD_COLOR)
img = cv2.resize(img, (600,400))
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
gray = cv2.bilateralFilter(gray, 13, 15, 15)

edged = cv2.Canny(gray, 30, 200)
contours = cv2.findContours(edged.copy(), cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
contours = imutils.grab_contours(contours)
contours = sorted(contours, key = cv2.contourArea, reverse = True)[:10]
screenCnt = None.

for c in contours:
 peri = cv2.arcLength(c, True)
 approx = cv2.approxPolyDP(c, 0.018 * peri, True)
 if len(approx) == 4:
 screenCnt = approx.
 break.

if screenCnt is not None:

 cv2.drawContours(img, [screenCnt], -1, (0, 0, 255), 3)

 mask = np.zeros(gray.shape,np.uint8)
 new_image = cv2.drawContours(mask,[screenCnt],0,255,-1,)

 new_image = cv2.bitwise_and(img,img,mask=mask)
 (x, y) = np.where(mask == 255)
 (topx, topy) = (np.min(x), np.min(y))
 (bottomx, bottomy) = (np.max(x), np.max(y))
 Cropped = gray[topx:bottomx+1, topy:bottomy+1]

 text = pytesseract.image_to_string(Cropped, config='--psm 11')
 print("Plaka Tanima Programlamasi\n")
 print("Plaka Numarasi:",text)

else:
 print ("Plaka bulunamadi")

img = cv2.imshow('Plaka Tespiti',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
 

Technopat Haberler

Geri
Yukarı