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

求可快速移除单像素开放线条且保留闭合线条的卷积核集

需求:高效移除单像素开放线条并保留闭合线条的卷积核集

我开发了一套卷积核,在由0(黑色)和1(白色)组成的二值图像上应用2-3次后,可可靠移除孤立及突出的白点。现有实现代码如下:

import numpy as np
from PIL import Image
from scipy.ndimage import convolve

kernels = [
    np.array([[1, 1, 1], [-4, 1, -4], [-4, -4, -4]]),
    np.array([[-4, -4, 1], [-4, 1, 1], [-4, -4, 1]]),
    np.array([[-4, -4, -4], [-4, 1, -4], [1, 1, 1]]),
    np.array([[1, -4, -4], [1, 1, -4], [1, -4, -4]])
]

image_path = 'path/to/image/file'
with Image.open(image_path) as image:
    
    if image.mode == 'RGBA':
        image = image.convert('RGB')

    image_np = np.array(image)
    mask = np.isin(image_np, [200, 200, 200]).all(axis=-1)
    
    binary_mask = np.zeros(image_np.shape[:2], dtype=int)
    binary_mask[mask] = 1
    
    for kernel in kernels:
        convolution = convolve(binary_mask, kernel, mode='constant')
        binary_mask[(binary_mask == 1) & (convolution >= 1)] = 0

这套卷积核的核心优势是能保留闭合线条(如矩形边缘),但存在明显缺陷:对于单像素粗细的开放线条(两端收尾的线条),需要执行线条长度一半次数的卷积才能完全移除,处理长线条时效率极低。

现寻求帮助开发一套卷积核(集),要求仅需少量卷积操作(如2-3次)即可移除单像素粗细的开放线条,同时完整保留单像素粗细的闭合线条。

示例图像

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 10:52:35