python的项目骨架_用Python对图像进行骨架化

import scipy.ndimage.morphology as m

import numpy as np

import cv2

def skeletonize(img):

h1 = np.array([[0, 0, 0],[0, 1, 0],[1, 1, 1]])

m1 = np.array([[1, 1, 1],[0, 0, 0],[0, 0, 0]])

h2 = np.array([[0, 0, 0],[1, 1, 0],[0, 1, 0]])

m2 = np.array([[0, 1, 1],[0, 0, 1],[0, 0, 0]])

hit_list = []

miss_list = []

for k in range(4):

hit_list.append(np.rot90(h1, k))

hit_list.append(np.rot90(h2, k))

miss_list.append(np.rot90(m1, k))

miss_list.append(np.rot90(m2, k))

img = img.copy()

while True:

last = img

for hit, miss in zip(hit_list, miss_list):

hm = m.binary_hit_or_miss(img, hit, miss)

img = np.logical_and(img, np.logical_not(hm))

if np.all(img == last):

break

return img

img = cv2.imread("e_5.jpg",0)

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)

skel = skeletonize(img)

imshow(skel, cmap="gray", interpolation="nearest")

我一直在尝试这段代码,以便对图像进行骨架化处理,骨架线之间没有任何间隙。但是每当我运行这个程序时,就会出现一个错误,就是点击“imshow in not defined”。在

我试过了plt.imshow公司,此时既没有错误也没有输出图像。谁能告诉我哪里出了问题吗。在

你可能感兴趣的:(python的项目骨架)