用python实现将骨架化后的图片里的点连成线 打开多张图片进行批量处理和保存到特定文件夹理
时间: 2024-05-03 07:22:28 浏览: 194
以下是用Python实现将骨架化后的图片里的点连成线并批量处理的代码:
```python
import cv2
import os
# 定义函数将骨架化后的图片里的点连成线
def connect_points(img):
# 膨胀操作使得图像中的点成为线
kernel = cv2.getStructuringElement(cv2.MORPH_CROSS, (3, 3))
img = cv2.dilate(img, kernel, iterations=1)
# 查找轮廓
contours, hierarchy = cv2.findContours(img, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
# 绘制连线后的轮廓
for i in range(len(contours)):
cv2.drawContours(img, contours, i, (255, 255, 255), 1)
return img
# 定义函数进行批量处理
def batch_process(input_folder, output_folder):
# 遍历输入文件夹中的所有图片
for filename in os.listdir(input_folder):
if filename.endswith('.png'):
# 读取图片
img = cv2.imread(os.path.join(input_folder, filename), cv2.IMREAD_GRAYSCALE)
# 进行连线操作
connected_img = connect_points(img)
# 保存处理后的图片
output_filename = os.path.join(output_folder, filename)
cv2.imwrite(output_filename, connected_img)
# 执行批量处理
input_folder = './input_folder'
output_folder = './output_folder'
batch_process(input_folder, output_folder)
```
在上面的代码中,`connect_points`函数将骨架化后的图片里的点连成线,并返回连线后的图像。`batch_process`函数进行批量处理,遍历输入文件夹中的所有图片,对每张图片进行连线操作,然后保存到输出文件夹中。在执行时,只需要设置`input_folder`和`output_folder`为对应的文件夹路径即可。
阅读全文