如何使用 OpencV 从 Firebase 读取图像?
How to read image from Firebase using OpencCV?
有没有使用 OpenCV 从 Firebase 读取图像的想法?还是我必须先下载图片,然后从本地文件夹执行 cv.imread 功能?
有什么方法可以让我使用 cv.imread(link_of_picture_from_firebase)
?
您可以这样做:
- 从磁盘读取 JPEG,
- 转换为JSON,
- 上传到 Firebase
那么您可以:
- 从 Firebase 检索图像
- 将 JPEG 数据解码回 Numpy 数组
- 将检索到的图像保存在磁盘上
#!/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)
有没有使用 OpenCV 从 Firebase 读取图像的想法?还是我必须先下载图片,然后从本地文件夹执行 cv.imread 功能?
有什么方法可以让我使用 cv.imread(link_of_picture_from_firebase)
?
您可以这样做:
- 从磁盘读取 JPEG,
- 转换为JSON,
- 上传到 Firebase
那么您可以:
- 从 Firebase 检索图像
- 将 JPEG 数据解码回 Numpy 数组
- 将检索到的图像保存在磁盘上
#!/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)