Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在SciPy中绘制粗抗锯齿线?_Python - Fatal编程技术网

Python 如何在SciPy中绘制粗抗锯齿线?

Python 如何在SciPy中绘制粗抗锯齿线?,python,Python,我找到了这个函数,它可以让你把法线或抗锯齿线绘制成一个numpy数组。还可以选择创建多边形,但这些多边形不是抗锯齿的 因为没有绘制粗线(宽度大于一个像素)的功能,所以我考虑绘制一个多边形,并在边上绘制线,以达到抗锯齿效果。但我认为这不是最好的解决方案 这就是我想问的原因,如果有更好的选择将粗抗锯齿线绘制到numpy数组中(可能使用matplotlib或其他工具)?使用PIL,您可以通过。比如说, import numpy as np from PIL import Image from PIL

我找到了这个函数,它可以让你把法线或抗锯齿线绘制成一个numpy数组。还可以选择创建多边形,但这些多边形不是抗锯齿的

因为没有绘制粗线(宽度大于一个像素)的功能,所以我考虑绘制一个多边形,并在边上绘制线,以达到抗锯齿效果。但我认为这不是最好的解决方案

这就是我想问的原因,如果有更好的选择将粗抗锯齿线绘制到numpy数组中(可能使用
matplotlib
或其他工具)?

使用PIL,您可以通过。比如说,

import numpy as np
from PIL import Image
from PIL import ImageDraw

scale = 2
width, height = 300, 200

img = Image.new('L', (width, height), 0)  
draw = ImageDraw.Draw(img)
draw.line([(50, 50), (250, 150)], fill=255, width=10)
img = img.resize((width//scale, height//scale), Image.ANTIALIAS)
img.save('/tmp/antialiased.png')
antialiased = np.asarray(img)
print(antialiased[25:35, 25:35])
# [[252 251 250 255 255 237 127  18   0   0]
#  [255 251 253 254 251 255 255 237 127  18]
#  [184 255 255 254 252 254 251 255 255 237]
#  [  0  72 184 255 255 254 252 254 251 255]
#  [  1   0   0  72 184 255 255 254 252 254]
#  [  0   3   1   0   0  72 184 255 255 254]
#  [  0   0   0   3   1   0   0  72 184 255]
#  [  0   0   0   0   0   3   1   0   0  72]
#  [  0   0   0   0   0   0   0   3   1   0]
#  [  0   0   0   0   0   0   0   0   0   3]]

img = Image.new('L', (width//scale, height//scale), 0)  
draw = ImageDraw.Draw(img)
draw.line([(25, 25), (125, 75)], fill=255, width=5)
img.save('/tmp/aliased.png')
aliased = np.asarray(img)
print(aliased[25:35, 25:35])
# [[255 255 255 255 255 255 255   0   0   0]
#  [255 255 255 255 255 255 255 255 255   0]
#  [255 255 255 255 255 255 255 255 255 255]
#  [  0   0 255 255 255 255 255 255 255 255]
#  [  0   0   0   0 255 255 255 255 255 255]
#  [  0   0   0   0   0   0 255 255 255 255]
#  [  0   0   0   0   0   0   0   0 255 255]
#  [  0   0   0   0   0   0   0   0   0   0]
#  [  0   0   0   0   0   0   0   0   0   0]
#  [  0   0   0   0   0   0   0   0   0   0]]

antialiased.png:

别名为.png


在下面的问题中,有人已经给出了一个选项,如何仅使用numpy实现它