2013-09-09 2 views
0

Мне интересно, можно ли построить графику контура (кривые уровня) из 2D-изображения в Python. Более конкретно, мне интересно, как я мог читать данные изображения (например, в пикселях серого, например), и использовать его для ввода z Я читаю некоторые статьи о matplotlib, но я не мог найти пример, который представляет собой изображение.Контур с 2D-изображения

+3

Можете ли вы быть немного более конкретно, пожалуйста? Общий ответ на ваш вопрос: * да * - но я сомневаюсь, что это то, что вы ищете. Можете ли вы рассказать о том, что вы пробовали, и о том, как это не сработало? – Schorsch

+2

Вы видели http://matplotlib.org/examples/pylab_examples/contourf_demo.html - это лучший хит, когда googling «matplotlib contour plot». Кажется, он показывает, как делать то, что вы просите. Попробуйте - покажите, что произошло, и если это не то, что вы имели в виду, задайте более направленный вопрос. – Floris

ответ

3

Вы можете использовать функцию contour from matplotlib.

import numpy as np 
import pylab as plt 

# Sample data 
row = np.linspace(-2,2,20) 
X,Y = np.meshgrid(row,row) 
Z = np.exp(-((X-1.5)**2+(Y+1)**2)) 
Z += np.exp(-((X)**2+(Y)**2)) 

plt.subplot(121) 
plt.imshow(Z,interpolation='none',origin='lower') 
plt.subplot(122) 
plt.contour(X,Y,Z) 
plt.show() 
print X,Y 

enter image description here

Вы также можете заполнить их с contourf вместо

enter image description here

+0

Не могли бы вы рассказать мне, как вы создали последнее изображение? Мне кажется, что вы использовали цвет линий для заполнения сюжета. В примерах _matplotlib_ я не мог найти такого, как ваш (очень хороший пример) о _contourf_, если бы мой предыдущий был прав. Благодарю. – pceccon

+0

@ user2666270 Возьмите пример кода, который у меня есть, и измените 'contour' на' contourf'. Рад, что они помогли! – Hooked

Смежные вопросы