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

如何在Julia中填充图像中的闭合轮廓区域为白色?

Julia中填充闭合轮廓区域的实现方案

方法1:一键填充孔洞(最便捷)

针对你这种黑色背景+白色闭合细圆轮廓的场景,直接用ImageMorphology.jl的fill_holes函数就能搞定,它会自动识别轮廓包围的黑色内部区域并填充为白色:

using Images, ImageMorphology

# 生成填充后的图像
img_With_contour_filled_with_white = fill_holes(img)

方法2:手动洪水填充(精准控制)

如果需要自定义填充起始点,可采用洪水填充方式,步骤如下:

  1. 从已获取的contour像素坐标中提取轮廓的边界范围;
  2. 选取轮廓内部的一个点作为填充起始点(比如边界框中心);
  3. 调用flood_fill!完成填充。
using Images

# 提取轮廓的行列范围
rows = [p[1] for p in contour]
cols = [p[2] for p in contour]
min_r, max_r = extrema(rows)
min_c, max_c = extrema(cols)

# 确定内部起始点(边界框中心)
start_point = ((min_r + max_r) ÷ 2, (min_c + max_c) ÷ 2)

# 复制原图避免修改原数据
img_filled = copy(img)

# 从起始点填充连通的黑色区域为白色
flood_fill!(img_filled, start_point, 1)

# 最终结果
img_With_contour_filled_with_white = img_filled

注意事项

  • 确保图像是二值图(像素值为0代表黑色,1代表白色);
  • 使用fill_holes时,必须保证轮廓完全闭合,否则会误填充整个背景;
  • 洪水填充的起始点要确保在轮廓内部,否则会填充到轮廓外的背景区域。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 20:10:28