У меня есть два метода, один из которых отправляет путь к вновь загруженному файлу изображения пользователем из внешнего интерфейса в другой метод, который считывает путь к изображению, предварительно добавив путь к моему хранилищу, чтобы определить лицо из него. Но в моем случае функция cv.imread не рассматривает путь как изображение, а на самом деле это путь к изображению только потому, что когда я получаю изображение, когда непосредственно пишу путь в URL браузера.
ОТКРЫТЬ ИЗОБРАЖЕНИЕ CV ИЗОБРАЖЕНИЕ И ОБНАРУЖЕНИЕ ЛИЦА
def detect_im(request, pathname):
rootpath = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
haar_file = rootpath + '\\face_detector\\haarcascade_frontalface_default.xml'
datasets = 'datasets\\'
myid = random.randint(1111, 9999)
path = f"https://storage.googleapis.com/agevent269406.appspot.com/srv/face_detector/static/face_detector/datasets/{str(myid)}"
face_cascade = cv2.CascadeClassifier(haar_file)
newpath = f"https://storage.googleapis.com/agevent-269406.appspot.com/{str(pathname)}" //JOINING THE OBTAINED PATH WITH MY BUCKET PATH
count = 1
while count < 30:
im = cv2.imread(newpath, 1)
gray = cv2.cvtColor(im, cv2.COLOR_BGR2GRAY)
...
ПОЛУЧИТЬ ПУТЬ ИЗОБРАЖЕНИЯ ИЗ ПОЛЬЗОВАТЕЛЯ И ОТПРАВИТЬ НА ВЫШЕ МЕТОД
def add_image(request):
form = PicUpForm()
if request.method == "POST":
form = PicUpForm(data=request.POST, files=request.FILES)
if form.is_valid():
picup = form.save()
pathname = picup.picture
item = detect_im(request, pathname) #SENDING THE IMAGE PATH FROM HERE TO ABOVE METHOD
return item
else:
return render(request, "add_dataset.html", {"picform": form})
НО I Я ПОЛУЧИЛА ЭТУ ОШИБКУ
Тип исключения: ошибка Значение исключения: OpenCV (4.2.0) /io/opencv/modules/imgproc/src/color.cpp:182: ошибка: (-215: утверждение не выполнено)! _Sr c .empty () в функции 'cvtColor'
ДЛЯ СПРАВОЧНИКА, ДОБАВЛЕНИЕ МОДЕЛЕЙ. КОД ТАКЖЕ ТАКЖЕ
def upload_to(instance, filename):
now = timezone_now()
base, ext = os.path.splitext(filename)
ext = ext.lower()
return f"srv/face_detector/static/face_detector/img/{now:%Y%m%d%H%M%S}{ext}"
class PicUpClass(models.Model):
picture = models.ImageField(_("picture"), upload_to=upload_to, blank=True, null=True)