
In [1]: canvas = numpy.zeros((12,12),dtype=int)In [2]: mahotas.polygon.fill_polygon( ...: [(1,1),(1,10),(10,1)],...: canvas)In [3]: canvasOut[3]: array([[0,0],[0,1,0]])
我希望以下输出:
array([[0,0]])
为什么[(10,2):( 10:10)]仍为零?是否有另一种方法可以将填充多边形绘制到数组中?
解决方法 这是一个奇怪的结果.我发现如果你颠倒了点的顺序,它会绘制出完整的数字.换一种说法:# this is brokenpts = [(1,1)]# this workspts = [(1,10)]
这是一个测试程序:
import numpyimport mahotas.polygondef run(n,reverse=0): canvas = numpy.zeros((n,n),dtype=int) lim = n-2 print '\n%d x %d,lim=%d reverse=%d' % (n,n,lim,reverse) pts = [(1,lim),(lim,1)] if reverse: pts.reverse() mahotas.polygon.fill_polygon(pts,canvas) return canvasfor rev in (0,1): for n in range(3,14): print run(n,rev)
例子:
6 x 6,lim=4 reverse=0[[0 0 0 0 0 0] [0 1 0 0 1 0] [0 1 1 1 1 0] [0 1 1 1 1 0] [0 1 0 0 0 0] [0 0 0 0 0 0]]6 x 6,lim=4 reverse=1[[0 0 0 0 0 0] [0 1 1 1 1 0] [0 1 1 1 1 0] [0 1 1 1 1 0] [0 1 1 1 1 0] [0 0 0 0 0 0]]总结
以上是内存溢出为你收集整理的python – 在numpy数组中绘制多边形全部内容,希望文章能够帮你解决python – 在numpy数组中绘制多边形所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)