二值图像的细化:python

2024-04-20 09:23:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我在试着把一个图像变成骷髅。使用这个代码,在某种程度上,图像是我想要的。但图像中仍然存在一些问题。我能在字里行间找到一些空隙。有没有更好的方法来消除这些空白。我已经附上了给定代码的输入和输出。在

import numpy as np
import cv2

img = cv2.imread("e_5.jpg",0)
size = np.size(img)
skel = np.zeros(img.shape,np.uint8)

ret,img = cv2.threshold(img,127,255,0)
element = cv2.getStructuringElement(cv2.MORPH_CROSS,(3,3))
img = 255 - img
img = cv2.dilate(img, element, iterations=3)

done = False

while( not done):
   eroded = cv2.erode(img,element)
   temp = cv2.dilate(eroded,element)
   temp = cv2.subtract(img,temp)
   skel = cv2.bitwise_or(skel,temp)
   img = eroded.copy()

   zeros = size - cv2.countNonZero(img)
   if zeros==size:
    done = True

original imagebinarydilateskeletonized image


Tags: 代码图像importimgsizenpzeroselement