0 / 0 / 0
Регистрация: 22.05.2020
Сообщений: 5

TypeError: an integer is required (got type tuple)

22.05.2020, 14:15. Показов 4062. Ответов 6

Студворк — интернет-сервис помощи студентам
Здравствуйте, делаю программу по распознаванию лиц, я начинающий,помогите, пожалуйста.
Когда я распознавал лицо через веб-камеру, все работало. Мне надо было сделать захват экрана и что бы если я открывал фотку или сидел в скайпе/дискорде, что бы лицо распознавалось,захват экрана работает (если что скрин приложил), но как только я открываю фотографию,вылазиет вот такая ошибка

File "03_face_recognition.py", line 33, in <module>
cv2.rectangle(img, (x,y), (x+w,y+h), (0,255,0), 2)
TypeError: an integer is required (got type tuple)

Вот мой код:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
import cv2
import numpy as np
import os 
from PIL import ImageGrab
 
recognizer = cv2.face.LBPHFaceRecognizer_create() 
recognizer.read('trainer/trainer.yml')
cascadePath = "haarcascade_frontalface_default.xml"
faceCascade = cv2.CascadeClassifier(cascadePath);
 
font = cv2.FONT_HERSHEY_SIMPLEX #Шрифт
 
#инициировать счетчик идентификаторов
id = 0
 
# имена, связанные с идентификаторами: пример ==> Александр: id=1 и т. д
names = ['None', 'Alexandr', 'Sergey'] 
 
 
while True:
    img = ImageGrab.grab()
    img_np = np.array(img)
    frame = cv2.cvtColor(img_np, cv2.COLOR_BGR2RGB)
    
    faces = faceCascade.detectMultiScale( 
        frame,
        scaleFactor = 1.2,
        minNeighbors = 5,
        minSize = (30, 30),
       )
 
    for(x,y,w,h) in faces:
        cv2.rectangle(img, (x,y), (x+w,y+h), (0,255,0), 2)
        id, confidence = recognizer.predict(frame[y:y+h,x:x+w]) #Функция recognizer.predict () Принимает в качестве параметра захваченную часть лица, подлежащую анализу, и
        #возвращает своего вероятного владельца, указывая его идентификатор и степень уверенности распознавателя в связи с этим совпадением.
 
        # Убедитесь, что достоверность меньше 100 ==> "0" идеальное совпадение
        if (confidence < 100):
            id = names[id]
            confidence = "  {0}%".format(round(100 - confidence))
        else:
            id = "unknown"
            confidence = "  {0}%".format(round(100 - confidence))
        
        cv2.putText(img, str(id), (x+5,y-5), font, 1, (255,255,255), 2) #Вывод имени идентификатора
        cv2.putText(img, str(confidence), (x+5,y+h-5), font, 1, (255,255,0), 1)  #Вывод достоверности 
    
    cv2.imshow('Screen', frame) 
 
    k = cv2.waitKey(10) & 0xff # Нажмите 'ESC' для выхода из видео
    if k == 27:
        break
 
print("\n [INFO] [INFO] Выход из программы и очистка материала")
cam.release()
cv2.destroyAllWindows()
Миниатюры
TypeError: an integer is required (got type tuple)  
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.05.2020, 14:15
Ответы с готовыми решениями:

TypeError: an integer is required (got type bytes)
Собираю скрипт с pyinstaller и получаю ошибку: TypeError: an integer is required (got type bytes)

TypeError: an integer is required (got type dict)
Здравствуйте! Код выполняется в консоли iPython. from datetime import date Years = range(2004, 2021) Datas = mouths...

Ошибка: TypeError: an integer is required (got type bytes)
Когда компилировал Python код в .exe вылезла такая ошибка: TypeError: an integer is required (got type bytes), что делать? Вот...

6
 Аватар для Semen-Semenich
5237 / 3481 / 1176
Регистрация: 21.03.2016
Сообщений: 8,310
22.05.2020, 18:06
ну сама ошибка то говорит что требуется целое число а передан кортеж. теперь смотрите что у вас лежит в переменных
x,y,w,h перед подачей в метод rectangle.
0
0 / 0 / 0
Регистрация: 22.05.2020
Сообщений: 5
22.05.2020, 18:53  [ТС]
Я изменил вот так,выдает такую ошибку.
так я же вроде передаю "frame", как раз преобразованный в серый цвет
Миниатюры
TypeError: an integer is required (got type tuple)   TypeError: an integer is required (got type tuple)  
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
22.05.2020, 19:57
Python
1
2
for x, y, width, height in faces:
    cv2.rectangle(image, (x, y), (x + width, y + height), color=(255, 0, 0), thickness=2)
0
0 / 0 / 0
Регистрация: 22.05.2020
Сообщений: 5
22.05.2020, 20:40  [ТС]
Цитата Сообщение от Garry Galler Посмотреть сообщение
Python
1
2
for x, y, width, height in faces:
    cv2.rectangle(image, (x, y), (x + width, y + height), color=(255, 0, 0), thickness=2)
1)У меня не было переменной image
2)Все равно вылезла та же ошибка,которую я написал в комментариях
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
22.05.2020, 21:59
Тогда я не знаю чем вам помочь. Судя по тому что увидел - документация (и примеры) по питоновскому биндингу к opencv напрочь устарели. У меня ваш код не запускается уже буквально на начальных строчках.
Потому что в последней версии питоновской cv2 нет ни face, ни LBPHFaceRecognizer_create, либо они куда-то перемещены.
0
0 / 0 / 0
Регистрация: 22.05.2020
Сообщений: 5
22.05.2020, 22:21  [ТС]
Цитата Сообщение от Garry Galler Посмотреть сообщение
Тогда я не знаю чем вам помочь. Судя по тому что увидел - документация (и примеры) по питоновскому биндингу к opencv напрочь устарели. У меня ваш код не запускается уже буквально на начальных строчках.
Потому что в последней версии питоновской cv2 нет ни face, ни LBPHFaceRecognizer_create, либо они куда-то перемещены.
Дело было во
frame = cv2.cvtColor(img_np, cv2.COLOR_BGR2RGB)
А надо было:
frame = cv2.cvtColor(img_np, cv2.COLOR_BGR2GRAY)
Я передавал не серый цвет.Спасибо что откликнулись!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.05.2020, 22:21
Помогаю со студенческими работами здесь

Не получается собрать приложение (TypeError: an integer is required (got type bytes)
Доброго дня.. В первый раз пытаюсь собрат приложение в PyCharm (python 3.8) pyinstaller -F -w -i...

TypeError: an integer is required (got type bytes)
при попытке компиляции файла python выдает ошибку TypeError: an integer is required (got type bytes) , вот полный дамп pyinstaller 2.py ...

TypeError: __str__ returned non-string (type tuple)
Делал задание в Яндексе. Всё сделал, должно работать, но мне показывают ошибку там, где её быть не может (то есть тело метода класса я...

TypeError: unsupported operand type(s) for ** or pow(): 'tuple' and 'float'
Всем привет! Хотел к каждому полученному значению приписать название столбцов. Код работает, но когда хочу название столбцов добавить...

TypeError: 'tuple' object is not callable
import pygame as pg from pygame.locals import * from config import * def mouse(polojeniex, polojeniey, i): if i == 0: ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

Новые блоги и статьи
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru