欢迎访问宙启技术站
智能推送

在Python中使用ImageDraw绘制图像轮廓

发布时间:2023-12-14 23:55:33

在Python中,可以使用PIL库中的ImageDraw模块来绘制图像轮廓。下面是一个使用ImageDraw绘制图像轮廓的示例代码:

from PIL import Image, ImageDraw

# 加载图像
image = Image.open("input.jpg")

# 创建ImageDraw对象
draw = ImageDraw.Draw(image)

# 获取图像大小
width, height = image.size

# 创建一个空白图像
contour_image = Image.new("RGB", (width, height), (255, 255, 255))

# 创建ImageDraw对象
contour_draw = ImageDraw.Draw(contour_image)

# 查找轮廓
contours = find_contours(image)

# 绘制轮廓
for contour in contours:
    # 轮廓坐标点集合
    points = contour["points"]
    
    # 绘制轮廓线
    contour_draw.line(points, fill=(0, 0, 0), width=1)
    
    # 绘制轮廓点
    for point in points:
        contour_draw.rectangle([point[0]-2, point[1]-2, point[0]+2, point[1]+2], fill=(255, 0, 0))
        
# 保存绘制轮廓后的图像
contour_image.save("output.jpg")

在上面的代码中,首先使用PIL库中的Image类打开待处理的图像。然后,使用ImageDraw模块创建一个ImageDraw对象draw。接着,按照需要创建一个空白图像contour_image,并使用contour_draw对象创建一个ImageDraw对象contour_draw。接下来,使用自定义的函数find_contours找到图像的轮廓。最后,使用contour_draw对象绘制轮廓线和轮廓点,并保存绘制轮廓后的图像。

需要注意的是,上面代码中的find_contours函数需要根据具体的需求自行实现,可以使用OpenCV等库来实现轮廓查找功能。

使用ImageDraw绘制图像轮廓的示例代码就是这样,你可以根据自己的需求对代码进行修改和扩展。希望对你有帮助!