用python实现将 骨架化的图像进行曲线拟合 批量图片输入和批量图片保存
时间: 2024-05-02 07:17:46 浏览: 279
python实现图片的批量裁剪、添加文字、修改尺寸和文件名
以下是一个用Python实现将骨架化图像进行曲线拟合,并批量输入输出的示例代码:
```python
import cv2
import numpy as np
import os
def fit_curve(image):
# 获得骨架化图像的所有非零点坐标
points = np.transpose(np.nonzero(image))
# 将坐标转换为浮点型
points = np.array(points, dtype=np.float32)
# 进行曲线拟合
curve = cv2.approxPolyDP(points, epsilon=3, closed=False)
# 将曲线转换为整型坐标
curve = np.array(curve, dtype=np.int32)
# 创建空白图像,将曲线绘制在上面
curve_image = np.zeros(image.shape, dtype=np.uint8)
cv2.polylines(curve_image, [curve], isClosed=False, color=255, thickness=1)
return curve_image
# 定义输入和输出文件夹路径
input_folder = 'input_folder'
output_folder = 'output_folder'
# 遍历输入文件夹中的所有图像文件
for filename in os.listdir(input_folder):
if filename.endswith('.jpg') or filename.endswith('.png'):
# 读取图像
image = cv2.imread(os.path.join(input_folder, filename), cv2.IMREAD_GRAYSCALE)
# 进行曲线拟合
curve_image = fit_curve(image)
# 保存输出图像
cv2.imwrite(os.path.join(output_folder, filename), curve_image)
```
使用此代码,你可以将一个包含多个图像文件的文件夹作为输入,并将曲线拟合后的图像保存到另一个文件夹中。请确保将 `input_folder` 和 `output_folder` 变量设置为正确的文件夹路径。
阅读全文