Ich würde gerne wissen, gibt es eine Möglichkeit, die Gesichter zu verwischen, die automatisch von der Haarkaskade Gesicht Klassifikator identifiziert wurden.Wie benutzt man opencv (Python) um Gesichter zu verwischen?
Mit dem unten stehenden Code kann ich die Gesichter erkennen, das Bild um dieses Gesicht zuschneiden oder ein Rechteck darauf zeichnen.
image = cv2.imread(imagepath)
# Specify the trained cascade classifier
face_cascade_name = "./haarcascade_frontalface_alt.xml"
# Create a cascade classifier
face_cascade = cv2.CascadeClassifier()
# Load the specified classifier
face_cascade.load(face_cascade_name)
#Preprocess the image
grayimg = cv2.cvtColor(image, cv2.cv.CV_BGR2GRAY)
grayimg = cv2.equalizeHist(grayimg)
#Run the classifiers
faces = face_cascade.detectMultiScale(grayimg, 1.1, 2, 0|cv2.cv.CV_HAAR_SCALE_IMAGE, (30, 30))
print "Faces detected"
if len(faces) != 0: # If there are faces in the images
for f in faces: # For each face in the image
# Get the origin co-ordinates and the length and width till where the face extends
x, y, w, h = [ v for v in f ]
# Draw rectangles around all the faces
cv2.rectangle(image, (x,y), (x+w,y+h), (255,255,255))
sub_face = image[y:y+h, x:x+w]
for i in xrange(1,31,2):
cv2.blur(sub_face, (i,i))
face_file_name = "./face_" + str(y) + ".jpg"
cv2.imwrite(face_file_name, sub_face)
Aber ich möchte das Gesicht der Menschen verwischen, damit sie nicht erkannt werden können.
Haben Sie eine Idee, wie das geht?
Danke für Ihre Hilfe
Arnaud
Verwenden eines von [Diese] (http://docs.opencv.org/doc/tutorials/imgproc/gausian_median_blur_bilateral_filter/gausian_median_blur_bilateral_filter.html) Funktionen und in den Pass Subregion Ihres Bildes mit einem Gesicht – Hammer
Hallo Hammer, Ich dachte, aber ich weiß nicht, wie man nur den Teil des Bildes verwischen, wo das Gesicht erkannt wurde. Danke. –
Endlich gelingt es mir zu tun, was ich will. Um das zu tun ein Weichzeichnen anwenden, wie Sie vorgeschlagen haben: 'sub_face = cv2.GaussianBlur (sub_face, (23, 23), 30)' dann überlappen ich diese Unschärfe Bild auf ein neues: 'result_image [y: y + sub_face.shape [0], x: x + sub_face.shape [1]] = sub_face' –