How to read image from Firebase using OpencCV?

前端 未结 1 729
太阳男子
太阳男子 2021-01-29 13:20

Is there any idea for reading image from Firebase using OpenCV? Or do I have to download the pictures first and then do the cv.imread function from the local folder ?

I

1条回答
  •  挽巷
    挽巷 (楼主)
    2021-01-29 13:46

    Here's how you can:

    • read a JPEG from disk,
    • convert to JSON,
    • upload to Firebase

    Then you can:

    • retrieve the image back from Firebase
    • decode the JPEG data back into a Numpy array
    • save the retrieved image on disk

    #!/usr/bin/env python3
    
    import numpy as np
    import cv2
    from base64 import b64encode, b64decode
    import pyrebase
    
    config = {
       "apiKey": "SECRET",
       "authDomain": "SECRET",
       "databaseURL": "SECRET",
       "storageBucket": "SECRET",
       "appId": "SECRET",
       "serviceAccount": "FirebaseCredentials.json"
    }
    
    # Initialise and connect to Firebase
    firebase = pyrebase.initialize_app(config)
    db = firebase.database()
    
    # Read JPEG image from disk...
    # ... convert to UTF and JSON
    # ... and upload to Firebase
    with open("image2.jpg", 'rb') as f:
        data = f.read()
    str = b64encode(data).decode('UTF-8')
    db.child("image").set({"data": str})
    
    
    # Retrieve image from Firebase
    retrieved = db.child("image").get().val()
    retrData = retrieved["data"]
    JPEG = b64decode(retrData)
    
    image = cv2.imdecode(np.frombuffer(JPEG,dtype=np.uint8), cv2.IMREAD_COLOR)
    cv2.imwrite('result.jpg',image)
    

    0 讨论(0)
提交回复
热议问题