世界上最好用的骨架提取算法!!!

分别是提取出的骨架和二值化原图;骨架周围没有多余的像素点;超级好用!!!

import cv2 as cv
import os
import numpy as np
from skimage import morphology
from skimage.io import imsave

# 输入和输出文件夹路径
input_folder = r'C:\Users\Administrator\Desktop\mask-sele'  # 输入文件夹路径,存放二值化图片
output_folder = r'C:\Users\Administrator\Desktop\gujiagujia'  # 输出文件夹路径,用来保存骨架图像

# 创建输出文件夹(如果不存在)
if not os.path.exists(output_folder):
    os.makedirs(output_folder)

# 获取所有二值化图片文件
image_files = [f for f in os.listdir(input_folder) if f.endswith('.png')]

# 遍历每一张图片并提取骨架
for img_name in image_files:
    # 读取图片(确保是二值图像)
    img_path = os.path.join(input_folder, img_name)
    img = cv.imread(img_path, cv.IMREAD_GRAYSCALE)  # 读取为灰度图像

    # 骨架提取
    skeleton = morphology.skeletonize(img // 255)  # 归一化为[0, 1],然后进行骨架提取
    skeleton = np.where(skeleton > 0, 1, 0).astype(np.uint8)  # 转回0-255的二值图像

    # 保存骨架图像到输出文件夹
    output_img_path = os.path.join(output_folder, img_name)
    imsave(output_img_path, skeleton * 255)  # 保存为8位的图像

    print(f"骨架已提取并保存: {output_img_path}")

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值