Python 从浮点图像的极值生成渐变
正如标题所述,我需要生成一个从给定浮点图像的最低值到最高值的渐变。这将作为图像的图例 我的想法是创建一个图像,然后用极值范围内的值填充每个像素。 我仍然不是Python方面的专家,所以任何帮助都很好。 到目前为止,我得到的是:Python 从浮点图像的极值生成渐变,python,python-imaging-library,Python,Python Imaging Library,正如标题所述,我需要生成一个从给定浮点图像的最低值到最高值的渐变。这将作为图像的图例 我的想法是创建一个图像,然后用极值范围内的值填充每个像素。 我仍然不是Python方面的专家,所以任何帮助都很好。 到目前为止,我得到的是: im = Image.open('path_to.tiff') extrw=im.getextrema() grad = Image.new('F', (10, 100)) pix = grad.load() for i in range(grad.size[0]):
im = Image.open('path_to.tiff')
extrw=im.getextrema()
grad = Image.new('F', (10, 100))
pix = grad.load()
for i in range(grad.size[0]): # for every pixel:
for j in range(grad.size[1]):
pixels[i,j] = (some_float)
正如你所看到的,我需要使用极值来得到相应的浮点值到像素中,以创建一个梯度。
如果我能呆在PIL图书馆那就太好了
谢谢大家! 经过一些研究,我发现这可能是一个线性函数。我所要做的就是把最小值、最大值和长度放到这个数学形式中:y=m*x+b 在kollegue的帮助下,我们计算出:y(像素值)=((最小值最大值)/h(图像的高度))*像素的索引+最大值。以代码形式:
extw=im.getextrema()
grad_b = 10
grad = Image.new('F', (grad_b, im_h))
pix = grad.load()
for i in range(grad.size[0]): # for every pixel:
for j in range(grad.size[1]):
pix[i,j] = (extw[0]-extw[1]/im_h)*j+extw[1]
什么样的梯度?线性的径向的?哪个轴?请更准确一点。啊,是的。直线的,垂直的