Hyp*_*ube 3 python numpy image-processing
我有4个角坐标(四边形)的数千个多边形,并希望将它们转换为光栅表示为numpy 2d数组.存在许多网格化算法,如流行的扫描线填充图形.(见http://www.cs.rit.edu/~icss571/filling/how_to.html或http://cs.uvm.edu/~rsnapp/teaching/cs274/lectures/scanlinefill.pdf)
Octave在poly2mask函数中实现了这一点(例如http://octave.sourceforge.net/image/function/poly2mask.html).
Numpy也有类似的功能吗?我仍然没有得到这个算法如何详细工作,因此,如果你能给我一些关于如何有效地在Python/Numpy中实现它的提示,我将非常感激.
或者为了速度原因,在CPython(我也不熟悉)中对它进行编码会更好吗?
在scipy生态系统中有一些不同的功能(无序):
1)最广泛使用的选项是使用matplotlib points_inside_poly.然而,填充规则网格非常不理想(即它是多边形测试中的显式点,而不是"扫描线"方法).
2)mahotas实现一个fill_polygon非常有效的功能:http://mahotas.readthedocs.org/en/latest/polygon.html#drawing
3)skimage(scikits-image)实现一个draw.polygon至少同样有效的功能,如果不是更多的话:http://scikit-image.org/docs/dev/api/skimage.draw.html#skimage.draw.polygon
4)最后,您还可以使用PIL并将图像转换为numpy数组.看一下ImageDraw模块:http://effbot.org/imagingbook/imagedraw.htm
总的来说,我建议安装skimage和使用它.这是一个非常有用的库.但是,如果由于某种原因无法安装scikits图像,则其他选项应该有所帮助.
| 归档时间: |
|
| 查看次数: |
2717 次 |
| 最近记录: |