2017-12-30 49 views
0

왜이 오류가 발생합니까? 오류는 '범위 내'에서 'for for'을 호출하는 줄에있는 것처럼 보이지만 왜 이것이 오류가 될지 알 수 없습니다 ... 뭔가가 숨어있는 경우를 대비하여 커널을 종료했습니다. numpy.min -TypeError : 'numpy.float64'개체를 호출 할 수 없습니다. 이유가 무엇입니까?

import os, sys 
import numpy 
from matplotlib import pylab, pyplot, cm 
from math import pi 
from skimage import io 


image = numpy.ones([44,44],dtype = float) 
imrange = len(image) 

#Initialize empty residue map 
residue_map = numpy.empty([imrange-2,imrange-2],dtype = float) 

#Calculate the residues for each point following formula (1) in He paper 
for i in range (1,int(imrange-1)): 
    for j in range (1,int(imrange-1)): 
     value = (image[i+1][j] - image[i][j]) + (image[i+1][j+1] - 
image[i+1][j]) + (image[i][j+1] - image[i+1][j+1]) + (image[i][j] - image[i][j+1]) 
     if value/2./pi > 0: 
      residue_map[i-1][j-1] = 1. 
     elif value/2./pi == 0: 
      residue_map[i-1][j-1] = 0. 
     else: 
      residue_map[i-1][j-1] = -1. 
+1

[Minimal, Complete, Verifiable example] (https://stackoverflow.com/help/mcve)을 제공해주십시오. – Nae

+1

전체 오류 메시지를 게시 할 수 있습니까? –

+0

TypeError : 'numpy.float64'객체가 'within in range (1, int (imrange-1))'행에 호출 할 수 없습니다. ' –

답변

0
나는 범위 = numpy.max (이미지)를 정의했던대로 파이썬에서 초심자의 또 다른 경우는 .... 위의 코드를 작동

을 다음과 같이

내 코드입니다 (이미지) 다음 루프에서 다시 범위를 사용하므로 오류 !!

+0

그러면 범위를 사용하도록 해당 행을 제거한 후 코드가 작동합니까? –

+0

예약 키워드를 변수 이름으로 사용하지 마십시오. 문제의 원인을 사람들이 이해할 수 있도록이 줄을 질문에 포함하십시오. –

관련 문제