-2
У меня возникли проблемы с обнаружением лица и обрезкой изображения для лица, работающего ниже, это мой код.Захват области лица с помощью камеры
import cv2
class Crop:
#constructor
def __init__(self, image):
self.data = image
def facechop(self):
# read xml for training data
facedata = "haarcascade_frontalface_default.xml"
cascade = cv2.CascadeClassifier(facedata)
# read image file
img = cv2.imread(self.data, 0)
minisize = (img.shape[1], img.shape[0])
miniframe = cv2.resize(img, minisize)
faces = cascade.detectMultiScale(miniframe)
for f in faces:
x, y, w, h = [ v for v in f ]
cv2.rectangle(img, (x, y), (x + w, y + h), (255, 255, 255))
sub_face = self.data[y:y + h, x:x + w]
# Show picture
cv2.imshow('img', sub_face)
return
входного файла изображения
picture = 'izz.jpg'
pic = Crop(gambar)
pic.facechop()
# keyboard input to destroy the window
while(True):
key = cv2.waitKey(0)
if key in [27, ord('Q'), ord('q')]:
break
, когда он работает, он не делает сырец после for
функции до sub_face = self.data[y:y + h, x:x + w]
. Он напрямую переходит в cv2.imshow('img', sub_face)
. Таким образом, sub_face
не известен. Почему это не работает? Я использую Aptana для его отладки. Спасибо.
Спасибо @Aphire, на самом деле ваш код может работать, но когда я пытаюсь ввести этот код, чтобы ввести файл изображения, который имеет одно лицо. 'картинка = 'izz.jpg' ' рис = Crop (картинка) '' pic.facechop() ' как мой пост ранее. По-прежнему такая же ошибка. – Gusan
Подождите, я загружу все как функцию внутри скрипта, содержащую правильный способ загрузки изображения. Я отредактирую свой пост за секунду. – Aphire
Okey. Спасибо – Gusan