用Python將有人臉的圖片刪除

FVSG4 數碼 3

本文將從多個方面詳細闡述使用Python將有人臉的圖片刪除的方法。

在使用Python進行圖像處理時,我們需要使用到一些開源庫,比如OpenCV、Pillow、numpy等。在開始編寫代碼之前,我們需要先安裝這些庫。

pip install opencv-python
pip install pillow
pip install numpy

在使用Python將有人臉的圖片刪除前,我們需要先找出圖片中的人臉。OpenCV提供了一個強大的人臉識別庫,可以識別圖片中的人臉。

以下是使用OpenCV識別圖片中人臉的示例代碼:

import cv2
faceCascade=cv2.CascadeClassifier("haarcascade_frontalface_default.xml")  # 加載人臉分類器
img=cv2.imread("test.jpg")  # 加載圖片
gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)  # 轉灰度圖像
faces=faceCascade.detectMultiScale(gray,scaleFactor=1.1,minNeighbors=5,minSize=(30,30),flags=cv2.CASCADE_SCALE_IMAGE)  # 識別人臉
for(x,y,w,h) in faces:
    cv2.rectangle(img,(x,y),(x+w,y+h),(0,255,0),2)  # 在人臉周圍畫一個矩形框
cv2.imshow("Faces found",img)  # 顯示圖片
cv2.waitKey(0)  # 等待按鍵

在識別出圖片中的人臉後,我們可以使用Pillow庫對圖片進行編輯,刪除識別出的人臉。

以下是使用Pillow刪除圖片中識別出的人臉的示例代碼:

from PIL import Image
img=Image.open("test.jpg")  # 加載圖片
for(x,y,w,h) in faces:
    region=img.crop((x,y,x+w,y+h))  # 摳出人臉部分
    img.paste((255,255,255),box=(x,y,x+w,y+h))  # 用白色將摳出的人臉部分覆蓋掉
img.show()  # 顯示圖片

以下是使用Python將有人臉的圖片刪除的完整示例代碼:

import cv2
from PIL import Image

# 加載人臉分類器
faceCascade=cv2.CascadeClassifier("haarcascade_frontalface_default.xml")

# 加載圖片
img=cv2.imread("test.jpg")

# 轉灰度圖像
gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)

# 識別人臉
faces=faceCascade.detectMultiScale(gray,scaleFactor=1.1,minNeighbors=5,minSize=(30,30),flags=cv2.CASCADE_SCALE_IMAGE)

# 刪除圖片中的人臉
img=Image.open("test.jpg")
for(x,y,w,h) in faces:
    region=img.crop((x,y,x+w,y+h))  # 摳出人臉部分
    img.paste((255,255,255),box=(x,y,x+w,y+h))  # 用白色將摳出的人臉部分覆蓋掉
img.show()  # 顯示圖片

回復

共1條回復 我來回復
  • 暫無回復內容