Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/323.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 从浮点图像的极值生成渐变_Python_Python Imaging Library - Fatal编程技术网

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]):

正如标题所述,我需要生成一个从给定浮点图像的最低值到最高值的渐变。这将作为图像的图例

我的想法是创建一个图像,然后用极值范围内的值填充每个像素。 我仍然不是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]):    # 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]

什么样的梯度?线性的径向的?哪个轴?请更准确一点。啊,是的。直线的,垂直的