如何勾勒图像并只留下轮廓

问题描述 投票:0回答:1

我有一个与this类似的问题,但我只想保留轮廓。 是我想要勾勒出的形象,有什么想法吗?

我尝试了其他线程上的所有程序,但除了使用 ImageMagick 的程序之外,没有一个程序能达到我想要的效果,而且我是一名 Windows 用户,希望尽可能避免外部下载。有人可以帮忙使用 PIL 或其他 python 模块来提供帮助吗?

python python-imaging-library outline
1个回答
0
投票

如果你有图像的二元掩模(无论如何,你需要一个,只是为了定义你想要“轮廓”的东西是什么。但是计算一个的标准是特定于每个图像的。它可能来自背景颜色。或者,在你的情况下,因为它有一个透明的背景,来自 alpha 通道),那么这是一个数学形态学运算。例如,OpenCV 包含数学形态学运算符

您需要阅读本文,因为这不仅仅是复制和粘贴一些代码。

但是对于您的具体问题和具体示例,它很简单

import cv2
img=cv2.imread("image.png")
outline = cv2.morphologyEx(img[...,3], cv2.MORPH_GRADIENT, np.ones((5,5)))

img[...,3]
是 Alpha 通道。这里,除了中心图形上的 255 之外,到处都是 0。
(5,5)
是内核的大小(阅读形态学以了解它),5 是用于调整以选择轮廓厚度的参数

© www.soinside.com 2019 - 2024. All rights reserved.