Я работал с numpy, PIL и OpenCV, чтобы создать систему обнаружения и обработки лиц. Я пытаюсь обрезать ограничивающие рамки (для дальнейшей обработки, которую я еще не написал), поэтому я написал следующее:
import cv2
import numpy as np
from PIL import Image
def main():
#Creates a camera object
vidCapture = cv2.VideoCapture(0)
while 1:
faceDetector = FaceDetector()
#stores the current frame into the frame variable
ret, frame = vidCapture.read()
#detects any faces and draws bounding boxes around them
img = faceDetector.find_any_faces(frame)
processing = Processing()
#crops everything around the bounding boxes for the faces
processing.mask(frame, faceDetector.getPoint1(), faceDetector.getPoint2())
class Processing():
#masks around the bounding boxes for the face
def mask(self, image, p1, p2):
#creates a numpy array from the image
arrimg = np.array(image)
#creates a PIL Image from the np array
img = Image.fromarray(arrimg)
#crops around each bounding box
cropped_image = img.crop(p1, p2)
return cropped_image
Это выдает ошибку TypeError с сообщением: " crop () принимает от 1 до 2 позиционных аргументов, но было дано 3 ". Судя по тому, что я мог найти, они обычно не включают self
в качестве параметра для метода, но я включаю мой в код. Если бы кто-нибудь мог помочь, это было бы здорово!