2012-02-23 75 views
0

我正嘗試使用插值從圖像中消除色差。我有代碼生成以下錯誤:TypeError:unhashable類型:'numpy.ndarray'。以下是我的代碼 - 任何幫助將不勝感激。謝謝你 - Areej 這是一個輸入解釋python中的圖像插值

#splitting an image into its separe bands 
source = im.split() 
Cfixed = source[2] 
Cwarp = source[1] 
#take the image minus a ew-wide edge 
roi = [ew+1, xdim-ew, ew+1, ydim-ew]; 
roi_pad = [roi[0]-ew, roi[1]+ew, roi[2]-ew, roi[3]+ew]; 
for k in range(0,centers_x.size): 
     cx = centers_x[k] 
     cy = centers_y[k] 
     wz = warps[k]  
import scipy as sp 
from scipy import interpolate 

def warpRegion(Cwarp, roi_pad, (cx, cy, wz)): 
    #Unpack region indices 
    sx, ex, sy, ey = roi_pad 
    xramp, yramp = np.mgrid[sx:ex+1, sy:ey+1] 
    shapeofgrid=xramp.shape 
    print 'shape of x grid'+str(shapeofgrid) 
    xrampc = xramp - cx; 
    yrampc = yramp - cy; 
    xramp1 = 1/wz*xrampc; 
    yramp1 = 1/wz*yrampc; 
    xrampf = xrampc.flatten() 
    yrampf = yrampc.flatten() 
    xramp1f = xramp1.flatten() 
    yramp1f = yramp1.flatten() 
    reg_w = sp.interpolate.interp2d(yrampf,xrampf,Cwarp, yramp1f, xramp1f,'cubic'); 
+0

請添加生成示例輸入數據中的一些代碼(如還有可能是numpy的/ SciPy的導入語句) – YXD 2012-02-23 11:57:05

+0

源= im.split() \t Cfixed =源[2] \t Cwarp =源[1] #take圖像減去EW-寬邊緣 \t \t ROI = [ ew + 1,xdim-ew,ew + 1,ydim-ew]; – 2012-02-23 12:02:41

+0

我的意思是將它添加到代碼中,以便它是一個完整的但最小的(即沒有任何不重要的額外代碼)示例。你需要幫助人們幫助你,所以如果他們能夠直接運行你的代碼,那麼你更有可能解決你的問題。另外,您是否可以添加完整的錯誤消息 - 例如包括行號 – YXD 2012-02-23 12:11:37

回答

1

錯誤消息的一種可能的解釋是,你試圖用一個NumPy的陣列作爲一個字典鍵或一組元件。查看發生錯誤的位置並研究該行中引用的每個變量的類型。如果您需要幫助,請發佈可運行的示例以及異常的完整回溯。

+0

我轉貼問題在這個鏈接http://stackoverflow.com/questions/9414204/chromatic-aberration-estimation-in-python – 2012-02-23 14:22:00