diff --git a/Number-Plate-Detection/Numberplatedetection.py b/Number-Plate-Detection/Numberplatedetection.py new file mode 100644 index 0000000..13d6845 --- /dev/null +++ b/Number-Plate-Detection/Numberplatedetection.py @@ -0,0 +1,61 @@ +import cv2 +import os +import time + +cascade_path = cv2.data.haarcascades + "haarcascade_russian_plate_number.xml" +plate_cascade = cv2.CascadeClassifier(cascade_path) + +if plate_cascade.empty(): + raise IOError("Error loading Haar cascade") + +# Output directory +os.makedirs("plates", exist_ok=True) + +cap = cv2.VideoCapture(0) +if not cap.isOpened(): + raise IOError("Cannot open webcam") + +plate_count = 0 +last_save_time = 0 +save_delay = 0.5 + +while True: + ret, frame = cap.read() + if not ret: + break + + frame = cv2.resize(frame, (960, 540)) + gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) + gray = cv2.equalizeHist(gray) + gray = cv2.bilateralFilter(gray, 11, 17, 17) + + roi = gray[270:540, :] + plates = plate_cascade.detectMultiScale( + roi, + scaleFactor=1.05, + minNeighbors=7, + minSize=(60, 20) + ) + + current_time = time.time() + + for (x, y, w, h) in plates: + y += 270 + aspect_ratio = w / h + + if 2 < aspect_ratio < 5: + cv2.rectangle(frame, (x, y), (x + w, y + h), (0, 255, 0), 2) + + if current_time - last_save_time > save_delay: + plate_count += 1 + plate_img = frame[y:y+h, x:x+w] + cv2.imwrite(f"plates/plate_{plate_count}.jpg", plate_img) + last_save_time = current_time + + cv2.imshow("Number Plate Detection", frame) + + if cv2.waitKey(1) & 0xFF == ord("q"): + break + +cap.release() +cv2.destroyAllWindows() diff --git a/Number-Plate-Detection/README.md b/Number-Plate-Detection/README.md new file mode 100644 index 0000000..8b91d1b --- /dev/null +++ b/Number-Plate-Detection/README.md @@ -0,0 +1,40 @@ +# Number Plate Detection πŸš˜πŸ” + +This project is a simple **Number Plate Detection** system built using **Python** and **OpenCV**. +It uses classical image processing techniques and OpenCV’s **built-in Haar Cascade classifier** to detect vehicle number plates in real time using a webcam. + +--- + +## πŸ“Έ Demo + +![Demo Screenshot](https://github.com/user-attachments/assets/fd6d233e-a948-4015-aab3-50ec09ac9f75) + +--- + +## 🧠 Features + +- Real-time number plate detection using webcam +- Uses OpenCV’s built-in Haar Cascade classifier +- Draws bounding boxes around detected number plates +- Lightweight and beginner-friendly +- Can be extended for OCR (text extraction) + +--- + +## πŸ› οΈ Technologies Used + +- Python 3.x +- OpenCV + +--- + + +## πŸ“ Project Structure + +``` +Number-Plate-Detection/ +β”‚ +β”œβ”€β”€ Numberplatedetection.py # Main script +└── README.md # Project documentation +``` +