Videonun tamamını inceleyip plakayı tahmin etmek için mevcut teknik kısıtlamalar nedeniyle Python koduyla doğrudan çözüm sağlayamıyorum. Ancak, genel olarak video analizi ve bulanık plaka çözümü için izlenebilecek adımları açıklayabilirim. Bu adımlar, videodaki pikselleri birleştirerek plaka tahmini yapmayı içerir.
Adım Adım Plaka Tahmini
- Videoyu Karelere Ayırma:
- Videodaki kareleri belirli aralıklarla çıkararak analiz için kullanın.
- Görüntü İşleme:
- Her kare üzerinde görüntü işleme teknikleri uygulayarak bulanıklığı azaltın ve netliği artırın. Bu adımda, kontrast ayarlama, keskinleştirme ve filtreleme işlemleri uygulanabilir.
- Karelerin Birleştirilmesi:
- Tüm karelerdeki plaka bölgelerini belirleyerek bu bölgeleri birleştirin. Bu işlem, piksellerin ortalamasını alarak veya süper çözünürlük teknikleri kullanarak yapılabilir.
- Optik Karakter Tanıma (OCR):
- Birleştirilen görüntü üzerinde OCR uygulayarak plakadaki karakterleri tanımlayın. Tesseract gibi OCR araçları bu işlem için kullanılabilir.
import cv2 import numpy as np from PIL import Image import pytesseract # Load the video file video_path = "/mnt/data/0515 (2).mp4" video = cv2.VideoCapture(video_path) # Check if the video was opened successfully if not video.isOpened(): raise Exception("Could not open video.") # Parameters frames_to_capture = 50 # Number of frames to capture frames_interval = 30 # Interval between frames to capture # Capture frames at regular intervals captured_frames = [] for i in range(frames_to_capture): video.set(cv2.CAP_PROP_POS_FRAMES, i * frames_interval) ret, frame = video.read() if ret: captured_frames.append(frame) else: break video.release() # Process captured frames plaka_regions = [] for frame in captured_frames: # Convert to grayscale gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) # Apply GaussianBlur to reduce noise and improve OCR blurred = cv2.GaussianBlur(gray, (5, 5), 0) # Use edge detection to find the plate region edges = cv2.Canny(blurred, 50, 150) # Find contours contours, _ = cv2.findContours(edges, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE) for contour in contours: x, y, w, h = cv2.boundingRect(contour) aspect_ratio = w / float(h) if 2 < aspect_ratio < 5: # Typical aspect ratio of a license plate plaka_region = gray[y:y+h, x:x+w] plaka_regions.append(plaka_region) # Combine plate regions to improve OCR accuracy if plaka_regions: combined_plaka = np.mean(plaka_regions, axis=0).astype(np.uint8) # Perform OCR on the combined image plaka_text = pytesseract.image_to_string(combined_plaka, config='--psm 8') print(f"Detected Plate: {plaka_text}") else: print("No plate region detected.")Teknik kısıtlamalar nedeniyle şu an burada video dosyalarını işleyip analiz edemiyorum. Ancak, yukarıda paylaştığım Python kodunu yerel bilgisayarınızda çalıştırarak videodaki plakanın tahmin edilmesini sağlayabilirsiniz. Adımları takip ederek bu işlemi gerçekleştirebilirsiniz:
Adımlar:
- Python ve Gerekli Kütüphaneleri Kurun:
- Python'u kurun.
- Gerekli kütüphaneleri yükleyin:bashKodu kopyala
pip install opencv-python-headless numpy pytesseract - Tesseract OCR aracını kurun (Tesseract'in bilgisayarınızda kurulu olması gerekmektedir):bashKodu kopyala
sudo apt-get install tesseract-ocr
- Yukarıdaki Kodu Bir Python Dosyasına Yapıştırın:
- Yukarıda paylaşılan kodu bir Python dosyasına (örneğin, plaka_tahmin.py) yapıştırın.
- Video Dosyasını Uygun Dizine Koyun:
- Video dosyanızı (0515 (2).mp4) aynı dizine yerleştirin veya kodda belirtilen video_path değişkenini video dosyanızın konumuna göre güncelleyin.
- Python Dosyasını Çalıştırın:
- Python dosyasını çalıştırarak plaka tahminini yapın:bashKodu kopyala
python plaka_tahmin.py
- Python dosyasını çalıştırarak plaka tahminini yapın:bashKodu kopyala