用python实现将 骨架化的图像的点用曲线连接起来 批量图片输入和批量图片保存
时间: 2024-05-09 08:17:21 浏览: 94
以下是使用Python实现将骨架化图像的点用曲线连接起来的代码:
```python
import cv2
import numpy as np
import os
# 定义连接曲线函数
def connect_points(img, points, color=(255, 255, 255), thickness=2):
for i in range(len(points) - 1):
cv2.line(img, points[i], points[i+1], color, thickness)
# 定义批量处理函数
def batch_process(input_folder, output_folder):
# 遍历输入文件夹中的所有图像文件
for filename in os.listdir(input_folder):
# 读取图像文件
img_path = os.path.join(input_folder, filename)
img = cv2.imread(img_path, cv2.IMREAD_GRAYSCALE)
# 骨架化图像
skel = cv2.ximgproc.thinning(img, cv2.ximgproc.THINNING_ZHANGSUEN)
# 查找轮廓
contours, hierarchy = cv2.findContours(skel, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE)
# 将轮廓点连接起来
for contour in contours:
connect_points(img, np.squeeze(contour))
# 保存处理后的图像
output_path = os.path.join(output_folder, filename)
cv2.imwrite(output_path, img)
# 测试批量处理函数
batch_process('input_folder', 'output_folder')
```
以上代码中,`connect_points`函数用于将一组点按照顺序连接成曲线。`batch_process`函数用于遍历输入文件夹中的所有图像文件,对每张图像进行骨架化操作,然后将骨架上的轮廓点用曲线连接起来,最后保存处理后的图像到输出文件夹中。
阅读全文