如何洪水填充黑色边框与我选择的颜色包围的位图的一部分?(How to flood-fill part

2019-06-23 09:58发布

我想以编程方式修改使用python的位图,但并不真的需要彻底接地在主题,所以想专心学习正是我需要把工作做好。

那种事的一个很好的例子后,我会是英格兰的一个位图图像,它的县。 这将首先在白色背景上显示周围所有的县市黑色边框。

到目前为止好,但我怎么能动态地改变一个县的背景颜色?

关闭我的头顶,我想我可能会找到一个洪水填充例程的工作原理类似于一个简单的画图程序。 东西改变由指定的颜色所包围的区域内的所有像素。 我有一个快速浏览一下PIL文档,但没有发现任何东西我认为是洪水填充功能?

我还不知道到底是什么面具是什么或如何使用它,但也许这是一个途径,我应该探索。 也许我可以定义每个县一个面具,然后用面膜来指导填充过程? 可以面具被定义并保存的位图由我的程序以后使用中?

同去的路径???

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

Answer 1:

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不支持抗锯齿线描所以,除非您打开绘图模块来更多的东西能够像这样的建议是无用PythonMagick或pycairo 。)



Answer 2:

您可以尝试在OpenCV的Python绑定。 下面是一些例子: http://opencv.willowgarage.com/documentation/python-introduction.html

然后,您可以使用cvFloodFill功能洪水填充的区域。



文章来源: How to flood-fill part of a bitmap enclosed by a black border with my chosen color?