2017-01-13 1 views
-1

Beginner to Python, 저는 다음과 같이 이미지의 픽셀 값을 변경하려고했습니다. 마지막으로 한 줄에 'TypeError : 정수가 필요합니다'라는 오류가 발생했습니다. 어떻게 정렬합니까? 그렇지 않으면 개별 값의 각 화소가 다중 대역 화상을 이용 튜플 인TypeError : 정수가 필요합니다.

http://pillow.readthedocs.io/en/3.4.x/reference/PixelAccess.html#example

화상 부하를 수행 한 후 : 따르면

from PIL import Image 
img = Image.open(r'...') 
pix = img.load() 
def quantf(pval): 
    if pval>=0 and pval<0.25: 
     pval=0 
    elif pval>=0.25 and pval<0.5: 
     pval=0.25 
    elif pval>=0.5 and pval<0.75: 
     pval=0.5 
    elif pval>=0.75 and pval<1: 
     pval=0.75 
    elif pval==1: 
     pval=1 
for i in range (0,31): 
    for j in range (0,31): 
     pix[i,j]=quantf(pix[i,j]) 
img.show() 

답변

0

: 이 내 코드

from PIL import Image 
im = Image.open('hopper.jpg') 
px = im.load() 
print (px[4,4]) 

인쇄 :

(23, 24, 68) 

또는

0.23 

당신은 quantf(pval) 실제로 값을 반환 보장뿐만 아니라이을 설명하기 위해 귀하의 quantf(pval) 기능을 조정해야합니다

.

def quantf(pval): 
    if pval[0]>=0 and pval[0]<64: 
     pval=(0, pval[1], pval[2]) 
    elif pval[0]>=64 and pval[0]<128: 
     pval=(64, pval[1], pval[2]) 
    elif pval[0]>=128 and pval[0]<192: 
     pval=(128, pval[1], pval[2]) 
    elif pval[0]>=192 and pval[0]<256: 
     pval=(192, pval[1], pval[2]) 
    return pval 

또는

def quantf(pval): 
    if pval>=0 and pval<0.25: 
     pval=0 
    elif pval>=0.25 and pval<0.5: 
     pval=0.25 
    elif pval>=0.5 and pval<0.75: 
     pval=0.5 
    elif pval>=0.75 and pval<1: 
     pval=0.75 
    elif pval==1: 
     pval=1 
    return pval 
예 :