2014-10-15 3 views
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 라이브러리에 머물 수 있다면 좋을 것입니다.

감사합니다.

+0

어떤 종류의 그라디언트입니까? 선의? 방사형? 어느 축? 더 정확하게 말하십시오. – simonzack

+0

아 맞습니다. 선형, 수직 – user3759978

답변

0

일부 연구 결과이 함수가 선형 함수라는 것을 알았습니다. y = m * x + b

우리는 다음과 같은 콜레 구의 도움을 받았다. 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] 
관련 문제