Как стать автором
Обновить

Комментарии 7

А докер тут прямо необходим?
И связь с Django слабовата. Да, он на python и на этом всё пожалуй, просто в нем вызов функции, ничего сложного в вызове.
Были бы несколько таких «плюшек», было бы полезно, а так как то сомнительно.
Импорт из main.utils?
Что за main? По тексту этого не видно
И что такое messages?


Какой то слишком частный случай кода

Доброе утро.

1) А докер тут прямо необходим? Докер удобен. Вы просто копируете приведенный код в Dockerfile и все работает. В противном случае вам долго придется гуглить «какие же пакеты мне надо поставить на мой CentOs6, чтобы наконец то у меня сбилдился OpenCv». Это долго.

2) И связь с Django слабовата. Вы можете использовать данную функцию в чистом питоне.
К примеру:
with open('photo.jpg', 'r') as in_memory_uploaded_file: 
    in_memory_photo = in_memory_uploaded_file.read()
    detect_face(in_memory_photo)


3) Импорт из main.utils? Я специально старался не усложнять статью. Вы можете поместить функцию detect_face в любой удобный вам файл разумеется.

4) И что такое messages? docs.djangoproject.com/en/3.0/ref/contrib/messages

А лучше, непонятно зачем, писать докерфайл?
В котором ещё и джанго проект не запускается, а просто кусок какого то конфига


Ваш код не рабочий, точнее он работает, но путём полного понимания, что и куда. У вас кусок какого то view, который содержит не определенные переменные. У вас пакет main, который вы не создавали в статье (папка — это не пакет без _ init _.py), хотя пишете «импортируйте из main». То есть не новичку это под силу.
При этом не новичку и так известно или легко найти, как эти несколько не сложных строчек сделать.

Прошу прощения, должно быть вот так (обратите внимание на флаг rb и отсутствие .read())

def test_detect_face():
    with open(os.path.dirname(os.path.abspath(__file__)) + '/photo.jpg', 'rb') as in_memory_photo: 
        is_it_face = detect_face(in_memory_photo)
        print(is_it_face)
А откуда брать?
face_cascade = cv.CascadeClassifier(cv.__path__[0] + "/data/haarcascade_frontalface_default.xml")
haarcascade_frontalface_default.xml установится при установке OpenCv, никаких дополнительных манипуляций не требуется.

habr.com/ru/post/208092
github.com/opencv/opencv/tree/master/data/haarcascades
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации