首页 > 解决方案 > 使用python库填充图像中的穿孔形状?

问题描述

我有带有“穿孔”的 BW 图像。穿孔级别可以不同

在此处输入图像描述在此处输入图像描述在此处输入图像描述在此处输入图像描述

是否有任何“标准”方法可以用黑色完全填充形状以使它们更相似?

Pillow 和 opencv 是首选,但 imagemagick 也可以。

标签: pythonopencvimage-processingimagemagickpillow

解决方案


您可以使用图像形态(即:关闭)来实现这一点。

import cv2
import numpy as np

if __name__ == '__main__':
    # read image
    image = cv2.imread('image.png',cv2.IMREAD_UNCHANGED)

    # convert image to gray
    gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

    # ensure only black and white pixels exist
    ret,binary = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY)

    # morphology works with white forground
    binary = cv2.bitwise_not(binary)

    # get kernel for morphology
    kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (3,3))
    # number of iterations depends on the type of image you're providing
    binary = cv2.morphologyEx(binary, cv2.MORPH_CLOSE, kernel, iterations=3)

    # get black foreground
    binary = cv2.bitwise_not(binary)

    cv2.imshow('image', binary)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

12

34


推荐阅读