2012-11-26 8 views
6

Mam 3d dział linii generowanych przez matplotlib. Chcę nakładać obraz w określonym fragmencie XY (lub YZ, XZ). Jak zrobić to przy użyciu Pythona? Dzięki.Nakładanie obrazu w 3D wykresu przy użyciu python

Mam proste 3d kod działki jako:

fig = plt.figure(1),<br> 
ax = Axes3D(fig)<br> 
ax.plot(f[:,0], f[:,1], f[:,2], color='r') 

Mam też obraz "IM" (2d array), więc muszę coś takiego:

ax.overlay(Im, slice='xy', sliceNo=10) 
+0

Co próbowałeś do tej pory? Podaj swój kod źródłowy w pytaniu. –

+0

Nie mogłem znaleźć żadnych opcji. – ahmethungari

Odpowiedz

19

zrobiłem 3d działka powierzchnia nakładki na górze obrazu tła raz:

3d surface plot on top of background image

Jeśli jest podobny do tego, czego chcesz, mógłbym spróbować zrobić z tego przykład pracy.

Alternatywnie, jeśli chcesz tylko do wyświetlania obrazu w 3D przestrzeni, można użyć wykres powierzchniowy:

from pylab import * 
from mpl_toolkits.mplot3d import Axes3D 
from matplotlib.cbook import get_sample_data 
from matplotlib._png import read_png 
fn = get_sample_data("lena.png", asfileobj=False) 
img = read_png(fn) 
x, y = ogrid[0:img.shape[0], 0:img.shape[1]] 
ax = gca(projection='3d') 
ax.plot_surface(x, y, 10, rstride=5, cstride=5, facecolors=img) 
show() 

oczywiście wartości stride można zmniejszyć do 1 dla lepszej jakości obrazu, ale potem rysunek odbędzie loooong =)

obraz wynikowy z powyższego kodu:

enter image description here

+0

Drugi przykład w połączeniu z krzywą 3d jest tym, czego chciałem. wielkie dzięki. Myślę, że mogę drukować krzywe na obrazku, po prostu używając opcji hold (True) ... – ahmethungari

+0

Dzięki, że jest to pomocne dla mnie. Ale mam jedno pytanie, czy istnieje sposób na umieszczenie obrazu pod działką danych 3D? W [tutaj] (http://stackoverflow.com/questions/22959472) obraz nadal pływa nad 'bar3d'. – Jeon

+0

@torfbolt Chciałbym dowiedzieć się więcej o pierwszym przykładzie. Mam obraz, który chcę pozostać na płaszczyźnie x, y (z = 0). Na górze tego obrazu będzie moja krzywa 3D. Jak to zrobić? – FaCoffee

Powiązane problemy