1、安裝庫
pip install opencv-python
如果下載比較卡的話,指向國內下載地址:
pip3 install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple
2、下載源碼
https://opencv.org/
windows11對應的版本下載:?https://pan.baidu.com/s/1yLt6KYCuycbPYMD1DavYqA?pwd=v4w4 提取碼: v4w4?
3、安裝到制定目錄
D:/PythonProject/opencv-4.11.0-install/
4、人臉檢測代碼
# 導入cv模塊
import cv2 as cv# 檢測函數
def detect_face():gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY)face_cascade = cv.CascadeClassifier("D:/PythonProject/opencv-4.11.0-install/opencv/sources/data/haarcascades/haarcascade_frontalface_default.xml")# faces = face_cascade.detectMultiScale(gray)faces = face_cascade.detectMultiScale(gray, 1.05, 5, 0, (50, 50), (300, 300))for x, y, w, h in faces:cv.rectangle(img, (x, y), (x + w, y + h), color=(255, 0, 0), thickness=2)cv.imshow("result_img", img)# 讀取圖片
img = cv.imread("mans.jpg")
detect_face()
# 等待
while True:if ord("q") == cv.waitKey(0):break
cv.waitKey(0)
# 釋放內存
cv.destroyAllWindows()
說明:detectMultiScale ? 是 OpenCV 中用于檢測圖像中目標(如人臉)的函數,通常與 Haar 特征分類器(如 ? CascadeClassifier ?)一起使用。本次使用 Haar 分類器檢測灰度圖像gray中的人臉。以下是 ? detectMultiScale ? 函數的詳細說明:
detectMultiScale(image, scaleFactor, minNeighbors, flags, minSize, maxSize)
參數說明
1. ? image ?:?輸入圖像,通常是灰度圖像( ?cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) ?)。其中image是灰度圖像。
2. ? scaleFactor ?:每次圖像縮放的比例因子。它用于控制圖像金字塔的縮放比例。1.05 ? 表示每次圖像縮放的比例為 1.05。較小的值(如 1.05)會檢測到更多的小目標,但計算量會增加;較大的值(如 1.2)會檢測到較大的目標,但可能會漏掉較小的目標。
3. ? minNeighbors ?:?每個目標的鄰近目標數量。這個參數用于控制檢測的嚴格程度。較高的值會減少誤檢測,但可能會漏掉真實的目標。5 表示每個目標至少需要有 5 個鄰近目標。
4. ? flags ?:用于指定檢測過程中的一些選項。通常可以設置為 ? 0 ? 或 ? cv2.CASCADE_SCALE_IMAGE ?。0 ? 表示使用默認設置。
5. ? minSize ?:檢測目標的最小尺寸(寬和高)。小于這個尺寸的目標將被忽略。(50, 50) ? 表示最小尺寸為 50×50 像素。
6. ? maxSize ?:檢測目標的最大尺寸(寬和高)。大于這個尺寸的目標將被忽略。?(300, 300) ? 表示最大尺寸為 300×300 像素。
返回值?faces ?:? 返回一個矩形列表,每個矩形表示檢測到的目標(如人臉)的位置。每個矩形是一個包含四個值的元組 ? (x, y, w, h) ?,分別表示矩形的左上角坐標 ? (x, y) ? 和矩形的寬度 ? w ? 和高度 ? h ?。