从浮动图像的极值生成梯度

时间:2014-10-15 10:21:02

标签: 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]):    # for every pixel:
    for j in range(grad.size[1]):
        pixels[i,j] = (some_float)

正如你所看到的,我需要以某种方式使用extrema将浮点值相应地放入像素中以创建渐变。 如果我能留在PIL库中,那就太好了。

谢谢!

1 个答案:

答案 0 :(得分:0)

经过一些研究,我发现这可能是一个线性函数。所有我不得不将最小值,最大值和长度放入这个数学形式:y = m * x + b

在kollegue的帮助下,我们认为:y(像素值)=((minvalue-maxvalue)/ h(图像的高度))* index_of_pixel + maxvalue。代码形式:

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]