Интерполяция изображений в питоне - PullRequest
0 голосов
/ 23 февраля 2012

Я пытаюсь использовать интерполяцию для удаления хроматической аберрации из изображения. Код, который я имею, генерирует следующую ошибку: TypeError: unhashable type: 'numpy.ndarray'. Ниже мой код - любая помощь будет принята с благодарностью. Спасибо, Areej Это входное объяснение

#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');

Ответы [ 2 ]

1 голос
/ 23 февраля 2012

Возможное объяснение сообщения об ошибке: вы пытаетесь использовать массив NumPy в качестве ключа dict или элемента set. Посмотрите, где происходит ошибка, и изучите тип каждой переменной, указанной в этой строке. Если вам нужна помощь, опубликуйте работающий пример и полный отчет об исключении.

0 голосов
/ 24 февраля 2012

Я бы порекомендовал использовать PIL. (Библиотека изображений Python)

http://www.pythonware.com/products/pil/

Один из методов: Создайте список верхних цветов для квадранта / области выборки и хешируйте список

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...