2

我想使用 python 以编程方式修改位图,但并不需要对该主题有全面的基础,因此我想专注于学习完成工作所需的内容。

我所追求的那种东西的一个很好的例子是英格兰的位图图像和它的县。这最初会在白色背景上的所有县周围显示黑色边框。

到目前为止一切顺利,但我怎样才能动态更改县的背景颜色?

在我的脑海中,我在想我可能会找到一个类似于简单绘画应用程序的洪水填充程序。改变由指定颜色包围的区域内的所有像素的东西。我快速浏览了 PIL 文档,但没有找到任何我认为是洪水填充功能的东西?

我还不确切知道面具是什么或如何使用它,但也许这是我应该探索的途径。也许我可以为每个县定义一个掩码,然后使用该掩码来指导填充过程?是否可以在位图中定义和存储掩码以供我的程序以后使用?

路径也一样???

任何帮助或指示将不胜感激。

4

2 回答 2

6

PIL 有一个未记录的功能ImageDraw.floodfill

>>> import ImageDraw
>>> help(ImageDraw.floodfill)
Help on function floodfill in module ImageDraw:

floodfill(image, xy, value, border=None)
    Fill bounded region.

(洪水填充通常应该是最后的手段,因为它与抗锯齿线的交互很差。通常最好获取县的实际边界数据,然后绘制填充多边形。但是,PIL 不支持抗锯齿画线所以这个建议是没有用的,除非你把你的绘图模块切换到更强大的东西,比如PythonMagickpycairo。)

于 2012-04-05T11:02:24.043 回答
3

你可以在 python 中尝试 opencv 绑定。这是一些例子: http: //opencv.willowgarage.com/documentation/python-introduction.html

然后,您可以使用该cvFloodFill功能来填充区域。

于 2012-04-05T10:09:56.947 回答