You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用OpenCV从图像中正确提取人脸区域二值掩码?

人脸二值掩码提取的OpenCV实现问题

需求

输入一张含人脸的图像,要提取出仅保留人脸区域的二值掩码,属于简单图像分割任务:

  • 输入:带人脸的肖像图像
  • 预期输出:仅人脸区域为白色、其余区域为黑色的二值图像

我的尝试

原本打算用OpenCV的阈值函数实现,代码如下:

import cv2
import numpy as np

image = cv2.imread('input.png')
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
kernel = np.ones((6, 6), dtype=np.uint8)
gray = cv2.blur(gray, (13, 13))
gray = cv2.erode(gray, kernel, 3)
_, thres = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY)
cv2.imwrite('result.png', thres)

问题

运行后结果很差:眼部没有被填充成白色,还额外识别出了很多无关的区域。

内容的提问来源于stack exchange,提问作者kodeinoslave

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 08:35:18