Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > Python
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.02.2020, 18:17   #11
VolodyaBuzin
Пользователь
 
Регистрация: 10.11.2017
Сообщений: 56
По умолчанию

Вот рабочая ссылка:
https://dev.to/pranay749254/simple-f...hon-and-opencv
Но там на sqlite3 и более ранних версиях OpenCV.
VolodyaBuzin вне форума Ответить с цитированием
Старый 10.02.2020, 09:33   #12
VolodyaBuzin
Пользователь
 
Регистрация: 10.11.2017
Сообщений: 56
По умолчанию

Просто вывести строку могу, а присвоить profile, вернуть из функции и поместить в putText - нет, так как нужен тип действительных чисел вместо кортежа.

test_output.py
Код:
import cv2
import numpy as np
import os
import pymysql
 
def getProfile(id):
    conn = pymysql.connect(host='localhost', user='root', password='', db='facebase', charset='utf8mb4')
    with conn.cursor() as cursor:
        cmd = "SELECT * FROM people WHERE ID=%s"
        cursor.execute(cmd, id)
        for row in cursor:
            print(row)
    conn.close()
 
getProfile(1)
Результат:
Код:
D:\Python\python.exe C:/face_detection_mysql/test_output.py
(1, 'Vladimir', 23, 'M', 'None')
 
Process finished with exit code 0
recognition.py
Код:
import cv2
import numpy as np
import os
import pymysql
 
faceDetect = cv2.CascadeClassifier('haarcascade_frontalface_default.xml');
cam = cv2.VideoCapture(0);
rec = cv2.face.LBPHFaceRecognizer_create();
rec.read("recognizer/trainningData.yml")
font = cv2.FONT_HERSHEY_SIMPLEX
 
def getProfile(id):
    conn = pymysql.connect(host='localhost', user='root', password='', db='facebase', charset='utf8mb4')
    with conn.cursor() as cursor:
        cmd = "SELECT * FROM people WHERE ID=%s"
        cursor.execute(cmd, id)
        profile = None
        for row in cursor:
            profile = row
    conn.close()
    return profile
 
while(True):
    ret, img = cam.read();
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    faces = faceDetect.detectMultiScale(gray, 1.3, 5);
    for(x, y, w, h) in faces:
        cv2.rectangle(img, (x, y), (x+w, y+h), (0, 255, 0), 2)
        id, conf = rec.predict(gray[y:y+h, x:x+w])
        profile = getProfile(id)
        if(profile != None):
            cv2.putText(img, "Name : " + str(profile[1]), (x, y+h+20), font, (0, 255, 0), 2);
            cv2.putText(img, "Age : " + str(profile[2]), (x, y+h+45), font, (0, 255, 0), 2);
            cv2.putText(img, "Gender : " + str(profile[3]), (x, y+h+70), font, (0, 255, 0), 2);
            cv2.putText(img, "Criminal Records : " + str(profile[4]), (x, y+h+95), font, (0, 0, 255), 2);
    cv2.imshow("Face", img);
    if(cv2.waitKey(1)==ord('q')):
        break;
cam.release()
cv2.destroyAllWindows()
Результат:
Код:
D:\Python\python.exe C:/face_detection_mysql/recognition.py
Traceback (most recent call last):
  File "C:/face_detection_mysql/recognition.py", line 32, in <module>
    cv2.putText(img, "Name : " + str(profile[1]), (x, y+h+20), font, (0, 255, 0), 2);
TypeError: must be real number, not tuple
[ WARN:0] global C:\projects\opencv-python\opencv\modules\videoio\src\cap_msmf.cpp (674) SourceReaderCB::~SourceReaderCB terminating async callback
 
Process finished with exit code -805306369 (0xCFFFFFFF)
Как вернуть массив строк, если в видеопотоке будет несколько лиц? Также я путаюсь в этих индексах - почему к элементам массива profile нельзя обратиться по названиям столбцов?
VolodyaBuzin вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обработка растровых изображений с применением библиотеки OpenCV: проблемы с апроксимацией и нахождением вершин фигуры VolodyaBuzin Python 4 29.01.2020 07:41
Движение растровых изображений в делфи Katerina_K Помощь студентам 2 25.10.2013 14:24
Обработка растровых изображений и анимация в C++ Kravanet Visual C++ 0 01.12.2011 23:31
Какие форматы файлов растровых изображений нецелочисленные пиксели? Shuraken13 Помощь студентам 0 18.05.2011 14:23
Разработать программу для обработки растровых изображений, хранящихся в файлах формата BMP (BitMaP). yeskin Фриланс 5 19.12.2010 15:06