2013-08-19 39 views
0
from scipy.spatial.distance import seuclidean #imports abridged 
    import scipy 


    img = np.asarray(Image.open("testtwo.tif").convert('L')) 

    img = 1 * (img < 127) 

    area = (img == 0).sum() # computing white pixel area 

    print area 

    areasplit = np.split(img, 24) # splitting image array 

    print areasplit 


    for i in areasplit: 
    result = (i == 0).sum() 
    print result    #computing white pixel area for every single array 

    minimal = result.min()  
    maximal = result.max() 

    dist = seuclidian(minimal, maximal) 

    print dist 

Я хочу вычислить расстояния между элементами массива, полученными при разбиении изображения. Python не может распознать имя функции расстояния (я попробовал несколько из них и различные варианты для импорта модулей). Как правильно импортировать и вызывать эти функции? СпасибоКак правильно импортировать и использовать функции scipy.spatial.distance?

+1

Вы получаете конкретные ошибки? – doctorlove

+0

Пожалуйста, укажите код * точного *, который вы использовали, и полное сообщение об ошибке. –

ответ

1

Вы не указано, что ошибка, но вы используете NumPy, как хорошо, и я не могу видеть импорта для этой Попробуйте

import numpy as np 
import scipy 

Тогда попробуйте

dist = scipy.spatial.distance.euclidian(minimal, maximal) 
dists = scipy.spatial.distance.seuclidian(minimal, maximal, variances) 

Примечание. Стандартизованное эвклидовое расстояние принимает третий параметр.

+3

Это не сработает. 'import scipy' не импортирует все подпакеты. Вы должны использовать 'import scipy.spatial' (или некоторые вариации, такие как' from scipy import spaces', и удалить префикс 'scipy.' и просто использовать' space.distance' и т. Д.). –