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

如何在OpenCV Python中为图像绘制模糊圆形?

在OpenCV中绘制带模糊效果的圆形

当然可以实现带模糊效果的圆形绘制,下面提供两种实用的实现方案,基于你给出的基础代码修改:

方案1:临时画布绘制+模糊融合

先在独立的临时画布上绘制实心圆,对圆进行模糊处理后,再将其融合到原始图像中,这种方法能精准控制圆形的模糊范围和颜色:

import cv2
import numpy as np

# 加载原始图像(替换为你的图像路径)
img = cv2.imread("your_image_path.jpg")
center = (150, 150)  # 自定义圆心坐标
radius = 20
color = (0, 255, 0)  # 圆形颜色(BGR格式)

# 创建与原图尺寸一致的空白临时画布
temp_canvas = np.zeros_like(img)
# 在临时画布上绘制实心圆
cv2.circle(temp_canvas, center, radius, color, -1)
# 对临时画布上的圆做高斯模糊,ksize为奇数,数值越大模糊越强
blurred_circle = cv2.GaussianBlur(temp_canvas, (21, 21), 0)
# 将模糊后的圆融合到原图,通过调整权重控制透明度与颜色强度
img = cv2.addWeighted(img, 1.0, blurred_circle, 0.7, 0)

# 预览结果
cv2.imshow("Blurred Circle", img)
cv2.waitKey(0)
cv2.destroyAllWindows()

方案2:局部模糊+掩码控制

如果需要让圆形区域呈现"模糊背景+叠加颜色"的效果,可以用掩码实现局部模糊:

import cv2
import numpy as np

img = cv2.imread("your_image_path.jpg")
center = (150, 150)
radius = 20
color = (0, 255, 0)

# 创建圆形掩码
mask = np.zeros(img.shape[:2], dtype=np.uint8)
cv2.circle(mask, center, radius, 255, -1)

# 对整张图像做模糊处理
blurred_bg = cv2.GaussianBlur(img, (21, 21), 0)
# 给模糊后的区域叠加指定颜色
colored_blurred_area = cv2.addWeighted(blurred_bg, 0.6, np.full_like(img, color), 0.4, 0)

# 通过掩码合并图像:掩码区域用带颜色的模糊效果,其余保留原图
result = np.where(mask[..., np.newaxis] == 255, colored_blurred_area, img)

cv2.imshow("Blurred Colored Circle", result)
cv2.waitKey(0)
cv2.destroyAllWindows()

参数调整提示

  • 高斯模糊的ksize必须是奇数,比如(9,9)、(21,21),数值越大模糊程度越高
  • addWeighted中的权重参数(示例里的0.7、0.4)可以调整模糊圆的透明度和颜色深浅
  • 如果需要更柔和的边缘,可以对掩码先做一次模糊处理

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 05:30:54