import cv2import numpy as npfrom skimage.morphology import skeletonizeimport matplotlib.pyplot as plt# 读取图像并转为二值(前景为1,背景为0)img = cv2.imread('object.png', cv2.IMREAD_GRAYSCALE)_, binary = cv2.threshold(img, 127, 255, cv2.THRESH_BINARY)# 转换为0/1二值图(skeletonize要求前景为1,背景为0)binary = binary // 255 # 将255转换为1# 骨架提取skeleton = skeletonize(binary).astype(np.uint8) * 255# 显示结果plt.figure(figsize=(10,5))plt.subplot(121), plt.imshow(binary, cmap='gray'), plt.title('原二值图')plt.subplot(122), plt.imshow(skeleton, cmap='gray'), plt.title('骨架')plt.show()