#tensorflow #opencv
#tensorflow #opencv
Вопрос:
Когда я запускаю эти строки кода, я получаю эту ошибку
Ошибка атрибута: объект ‘JpegImageFile’ не имеет атрибута ‘read'»
Кажется, я не могу обойти это.
import streamlit as st
import cv2
import os
import numpy as np
from PIL import Image
from tensorflow.keras.applications.mobilenet_v2 import preprocess_input
from tensorflow.keras.preprocessing.image import img_to_array, load_img
from tensorflow.keras.models import load_model
def detect_mask(image):
image = cv2.imdecode(np.fromstring(image.read(), dtype='uint8'),1)
image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
(h, w) = image.shape[:2]
blob = cv2.dnn.blobFromImage(image, 1.0, (300, 300), (104.0, 177.0, 123.0))
net.setInput(blob)
detection = net.forward()
Комментарии:
1. У вас нет
import
инструкций. Мы понятия не имеем, какимimage.read()
может быть результат. И у вас есть лишний апостроф вcv2.COLOR_BGR2RGB
2. @MarkSetchell Я добавил инструкции.
Ответ №1:
Рабочий пример кода
import cv2
import os
import numpy as np
from PIL import Image
from tensorflow.keras.applications.mobilenet_v2 import preprocess_input
from tensorflow.keras.preprocessing.image import img_to_array, load_img
from tensorflow.keras.models import load_model
image ='image.jpeg'
with open(image, 'rb') as infile:
buf = infile.read()
x = np.fromstring(buf, dtype='uint8')
img = cv2.imdecode(x, 1)
imag = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
(h, w) = imag.shape[:2]
blob = cv2.dnn.blobFromImage(imag, 1.0, (300, 300), (104.0, 177.0, 123.0))