I have used computer vision to detect the license plate of the approaching car. Since the car comes near the security barrier to a predefined distance, we can predefine a minimum and maximum contour area to locate the license plate in an image.
img = cv2.imread("car.png")
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
ret, gray = cv2.threshold(gray, 250,255,0)
# applying different thresholding techniques on the input image
# all pixels value above 120 will be set to 255
ret, thresh2 = cv2.threshold(img, 120, 255, cv2.THRESH_BINARY_INV)
gray = cv2.cvtColor(thresh2, cv2.COLOR_BGR2GRAY)
contours, _ = cv2.findContours(gray, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
for cnt in contours:
approx = cv2.approxPolyDP(cnt, 0.01*cv2.arcLength(cnt, True), True)
# The area constant is computed by the expectation of
# how near the car can come near the security barrier
if len(approx) == 4 and cv2.contourArea(cnt) > 1000:
# Draw the License Plate Contour
cv2.drawContours(img, [approx], 0, (0), 5)
cv2.imshow("shapes", img)
cv2.waitKey(0)
cv2.destroyAllWindows()
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.