用Python將有人臉的圖片刪除
數碼 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() # 顯示圖片