Как передать изображение из корзины в gcloud, чтобы opencv обнаружил метод определения лица? - PullRequest
0 голосов
/ 06 марта 2020

У меня есть два метода, один из которых отправляет путь к вновь загруженному файлу изображения пользователем из внешнего интерфейса в другой метод, который считывает путь к изображению, предварительно добавив путь к моему хранилищу, чтобы определить лицо из него. Но в моем случае функция 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)
...