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

如何使用Python+OpenCV去除图像中手部周围的黑点?

OpenCV手绘风格图像处理方案

我用Python的OpenCV捕获图像,想要把原图处理成类似目标图的手绘风格效果:

原图

原图

目标效果

目标效果

目前我使用的图像处理代码达不到预期效果,代码如下:

# Image Processing
gray = cv2.cvtColor(roi, cv2.COLOR_BGR2GRAY)
blur = cv2.GaussianBlur(gray, (51,51), 15) 
th3 = cv2.adaptiveThreshold(gray, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY_INV, 11, 2)
ret, test_image = cv2.threshold(th3, 10, 255, cv2.THRESH_BINARY_INV+cv2.THRESH_OTSU)

改进实现代码

要匹配目标图的手绘风格,我们可以通过灰度图与模糊图的差值提取纹理,再反转颜色实现效果,代码如下:

import cv2
import numpy as np

def get_hand_drawing_style(roi):
    # 转为灰度图
    gray = cv2.cvtColor(roi, cv2.COLOR_BGR2GRAY)
    # 高斯模糊柔化背景,核大小可根据图像尺寸调整
    blur = cv2.GaussianBlur(gray, (21, 21), 0)
    # 计算灰度图与模糊图的比值,突出纹理边缘
    diff = cv2.divide(gray, blur, scale=256)
    # 反转颜色,匹配目标图的黑白风格
    result = cv2.bitwise_not(diff)
    return result

# 使用示例
# processed_img = get_hand_drawing_style(roi)
# cv2.imshow("Hand Drawing Style", processed_img)
# cv2.waitKey(0)
# cv2.destroyAllWindows()

代码说明

  • 高斯模糊的核大小(21,21)可按需调整,核越大背景柔化效果越明显;
  • cv2.divide操作能强化图像的线条纹理,模拟手绘的笔触感;
  • 最后反转颜色得到深色线条+浅色背景的效果,和目标图风格一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 21:06:24