Created
September 14, 2021 06:25
-
-
Save danleyb2/865df1d441e5f29347afae7e9423c213 to your computer and use it in GitHub Desktop.
Send Camera Images and License Plate Data
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import requests | |
API_TOKEN = '4805bee1222ce85e#############################' | |
gcPlateRecognizerToken = '98f98d713ba11###########################' | |
glDebug = True | |
def run_rec(i): | |
with open(i, 'rb') as fp: | |
response = requests.post( | |
'http://api.platerecognizer.com/v1/plate-reader', | |
files=dict(upload=fp), | |
headers={ | |
'Authorization': 'Token '+API_TOKEN, | |
} | |
) | |
print(response) | |
print(response.text) | |
# pprint(response.json()) | |
return response.json() | |
class FarmgateUtils: | |
def ConvertPhotoToBase64(self): | |
return 'data:image/gif;base64,R0lGODlhPQBEAPeoAJosM//AwO/AwHVYZ/z595kzAP/s7P+goOXMv8+fhw/v739/f+8PD98fH/8mJl+fn/9ZWb8/PzWlwv///6wWGbImAPgTEMImIN9gUFCEm/gDALULDN8PAD6atYdCTX9gUNKlj8wZAKUsAOzZz+UMAOsJAP/Z2ccMDA8PD/95eX5NWvsJCOVNQPtfX/8zM8+QePLl38MGBr8JCP+zs9myn/8GBqwpAP/GxgwJCPny78lzYLgjAJ8vAP9fX/+MjMUcAN8zM/9wcM8ZGcATEL+QePdZWf/29uc/P9cmJu9MTDImIN+/r7+/vz8/P8VNQGNugV8AAF9fX8swMNgTAFlDOICAgPNSUnNWSMQ5MBAQEJE3QPIGAM9AQMqGcG9vb6MhJsEdGM8vLx8fH98AANIWAMuQeL8fABkTEPPQ0OM5OSYdGFl5jo+Pj/+pqcsTE78wMFNGQLYmID4dGPvd3UBAQJmTkP+8vH9QUK+vr8ZWSHpzcJMmILdwcLOGcHRQUHxwcK9PT9DQ0O/v70w5MLypoG8wKOuwsP/g4P/Q0IcwKEswKMl8aJ9fX2xjdOtGRs/Pz+Dg4GImIP8gIH0sKEAwKKmTiKZ8aB/f39Wsl+LFt8dgUE9PT5x5aHBwcP+AgP+WltdgYMyZfyywz78AAAAAAAD///8AAP9mZv///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAKgALAAAAAA9AEQAAAj/AFEJHEiwoMGDCBMqXMiwocAbBww4nEhxoYkUpzJGrMixogkfGUNqlNixJEIDB0SqHGmyJSojM1bKZOmyop0gM3Oe2liTISKMOoPy7GnwY9CjIYcSRYm0aVKSLmE6nfq05QycVLPuhDrxBlCtYJUqNAq2bNWEBj6ZXRuyxZyDRtqwnXvkhACDV+euTeJm1Ki7A73qNWtFiF+/gA95Gly2CJLDhwEHMOUAAuOpLYDEgBxZ4GRTlC1fDnpkM+fOqD6DDj1aZpITp0dtGCDhr+fVuCu3zlg49ijaokTZTo27uG7Gjn2P+hI8+PDPERoUB318bWbfAJ5sUNFcuGRTYUqV/3ogfXp1rWlMc6awJjiAAd2fm4ogXjz56aypOoIde4OE5u/F9x199dlXnnGiHZWEYbGpsAEA3QXYnHwEFliKAgswgJ8LPeiUXGwedCAKABACCN+EA1pYIIYaFlcDhytd51sGAJbo3onOpajiihlO92KHGaUXGwWjUBChjSPiWJuOO/LYIm4v1tXfE6J4gCSJEZ7YgRYUNrkji9P55sF/ogxw5ZkSqIDaZBV6aSGYq/lGZplndkckZ98xoICbTcIJGQAZcNmdmUc210hs35nCyJ58fgmIKX5RQGOZowxaZwYA+JaoKQwswGijBV4C6SiTUmpphMspJx9unX4KaimjDv9aaXOEBteBqmuuxgEHoLX6Kqx+yXqqBANsgCtit4FWQAEkrNbpq7HSOmtwag5w57GrmlJBASEU18ADjUYb3ADTinIttsgSB1oJFfA63bduimuqKB1keqwUhoCSK374wbujvOSu4QG6UvxBRydcpKsav++Ca6G8A6Pr1x2kVMyHwsVxUALDq/krnrhPSOzXG1lUTIoffqGR7Goi2MAxbv6O2kEG56I7CSlRsEFKFVyovDJoIRTg7sugNRDGqCJzJgcKE0ywc0ELm6KBCCJo8DIPFeCWNGcyqNFE06ToAfV0HBRgxsvLThHn1oddQMrXj5DyAQgjEHSAJMWZwS3HPxT/QMbabI/iBCliMLEJKX2EEkomBAUCxRi42VDADxyTYDVogV+wSChqmKxEKCDAYFDFj4OmwbY7bDGdBhtrnTQYOigeChUmc1K3QTnAUfEgGFgAWt88hKA6aCRIXhxnQ1yg3BCayK44EWdkUQcBByEQChFXfCB776aQsG0BIlQgQgE8qO26X1h8cEUep8ngRBnOy74E9QgRgEAC8SvOfQkh7FDBDmS43PmGoIiKUUEGkMEC/PJHgxw0xH74yx/3XnaYRJgMB8obxQW6kL9QYEJ0FIFgByfIL7/IQAlvQwEpnAC7DtLNJCKUoO/w45c44GwCXiAFB/OXAATQryUxdN4LfFiwgjCNYg+kYMIEFkCKDs6PKAIJouyGWMS1FSKJOMRB/BoIxYJIUXFUxNwoIkEKPAgCBZSQHQ1A2EWDfDEUVLyADj5AChSIQW6gu10bE/JG2VnCZGfo4R4d0sdQoBAHhPjhIB94v/wRoRKQWGRHgrhGSQJxCS+0pCZbEhAAOw==' | |
def UploadPhotoAndDetailsToParkPow(pcFileOrBase64Image = "", pcSDKResultDict = "", pcCameraID = "", pcTime = ""): | |
# See https://app.parkpow.com/documentation/#operation/Send%20Camera%20Images%20and%20License%20Plate%20Data | |
global glDebug, gcPlateRecognizerToken, gcCameraID | |
try: | |
if pcCameraID == "": pcCameraID = gcCameraID | |
if len(pcFileOrBase64Image) < 250: | |
lcBase64Image = FarmgateUtils.ConvertPhotoToBase64(pcFileOrBase64Image) | |
else: | |
lcBase64Image = pcFileOrBase64Image | |
for result in pcSDKResultDict: | |
if not "model_make" in result: | |
if glDebug: print("\nUploadPhotoAndDetailsToParkPow(): Needed to add MMC keys to pcSDKResultDict") | |
result["model_make"] = [] | |
result["color"] = [] | |
result["orientation"] = [] | |
if glDebug: print(f"\nUploadPhotoAndDetailsToParkPow(): lcSDKResultDict is type {type(pcSDKResultDict)}: {pcSDKResultDict}") | |
response = requests.post( | |
"https://app.parkpow.com/api/v1/log-vehicle/", | |
json = dict(camera=pcCameraID, image=lcBase64Image, results=pcSDKResultDict), | |
headers = {"Authorization": f"Token {gcPlateRecognizerToken}"} ) | |
if glDebug: print("\nResponse from ParkPow API:") | |
if glDebug: print(f"{response.json()}") | |
# pprint({response.json()}) | |
return response.json() | |
except Exception as exc: | |
print(f"UploadPhotoAndDetailsToParkPow() failed: %s\n" % str(exc)) | |
return {} | |
if __name__ == '__main__': | |
path = 'assets/demo.jpg' | |
run_recognition_response = run_rec(path) | |
UploadPhotoAndDetailsToParkPow( | |
"", | |
run_recognition_response['results'], | |
'cam1' | |
) | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment