如何將行 jpg 資料傳遞給 OpenCV 我有一個保存影像然后再次打開它的代碼,但這太慢了,有人知道如何在不保存的情況下做到這一點嗎?
import requests
from PIL import Image
from io import BytesIO
import cv2
while True:
response = requests.get("https://www.cleverfiles.com/howto/wp-content/uploads/2018/03/minion.jpg", stream=True, allow_redirects=True)
image = Image.open(BytesIO(response.content))
image.save(r'C:\Users\marti\Pictures\Desktop\scripts\CAM\IMG.jpg', 'JPEG') #SAVE
frame = cv2.imread(r'C:\Users\marti\Pictures\Desktop\scripts\CAM\IMG.jpg') #OPEN
cv2.imshow("dfsdf",frame)
cv2.destroyAllWindows
uj5u.com熱心網友回復:
要回答您最初的問題,您可以這樣做
import requests
from PIL import Image
import cv2
import numpy as np
url = "https://www.cleverfiles.com/howto/wp-content/uploads/2018/03/minion.jpg"
frame = Image.open(requests.get(url, stream=True, allow_redirects=True).raw)
cv2.imshow("dfsdf", np.asarray(frame)[:,:,::-1])
但根據馬克的評論和這個答案,你可以完全跳過 PIL:
import requests
import cv2
import numpy as np
url = "https://www.cleverfiles.com/howto/wp-content/uploads/2018/03/minion.jpg"
# Fetch JPEG data
d = requests.get(url)
# Decode in-memory, compressed JPEG into Numpy array
frame = cv2.imdecode(np.frombuffer(d.content,np.uint8), cv2.IMREAD_COLOR)
cv2.imshow("dfsdf",frame)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/495955.html
