Newsgroup: it.comp.dotnet
Titolo: .NET e elaborazione immagini 3D

Un saluto a tutti.
Devo creare un'interfaccia grafica per un progetto inizialmente 
costruito in Matlab. Si tratta di partire da immagini 3D (trattate 
inizialmente come matrici tridimensionali), che vanno interpolate con un 
piano che le taglia secondo un certo angolo. Il risultato, 2D, deve 
essere visualizzato insieme all'oggetto 3D di partenza.
Mi servirebbero quindi delle librerie, da integrare con .NET che 
permettano sia la visualizzazione che l'elaborazione delle immagini. 
Inizilamente avevo pensato a VTK, ma sto avendo dei problemi ad 
agganciarle a Visual Studio (2005 o 2008), soprattutto per quanto 
riguarda i controlli Windows Forms.
Qualcuno mi può consigliare qualche libreria che possa fare al caso mio?
Vi ringrazio


Se devi creare una UI che contenga 2D, 3D e UI, senza dubbio WPF fa per 
te.
Essendo basato su DirectX hai performance grafiche elevate ed allo 
stesso tempo dispone di una serie di controlli che ti permettono di 
creare una UI di ottimo livello.
Con Winform hai GDI+ che ha performance decisamente più scadenti perché 
tutta la grafica viene gestita dalla CPU invece che dalla GPU.
-- 
Raffaele Rialdi  
http://www.iamraf.net
Weblog: 
http://blogs.ugidotnet.org/raffaele
Microsoft MVP profile 
https://mvp.support.microsoft.com/profile/raffaele
UGIdotNET - 
http://www.ugidotnet.org/

 creare una UI di ottimo livello.
Non lo coonscevo, sembra interessante!
Il mio problema è che devo ricreare in ambiente .net un codice molto 
simile a quello descritto qua:
http://www.mathworks.com/help/techdoc/visualize/f5-3558.html
Come si può vedere ci sono funzioni, tipo "surf", "rotate", "slice", che 
sono già presenti in diversi toolbox di matlab.
Con wpf o eventuali toolbox o librerie aggiuntive posso ritrovare le 
stesse funzioni o devo costruirmele io?


Con WPF puoi descrivere una scena completa in 3D, decidere la viewport, 
dove sta la "camera" (il punto di vista), etc. etc.
Se descrivi la scena in termini matematici e poi descrivi come vuoi 
vederla, ovviamente funziona tutto.
Le rotazioni sono già implementate e comunque sono la cosa più semplice 
visto che si tratta solo di fare moltiplicazioni di matrici.
A quanto capisco surf fa solo la presentazione, quindi ci sei.
Slice invece calcola la fetta 2D, quindi interseca un piano con il 
solido e calcola la superficie risultante. Non mi risulta ci sia nulla 
del genere nè in WPF, nè in Directx, tantomento in winform che *non* ha 
nulla per lavorare in 3D.
A me è capitato di usare OpenGL per fare cose simili (disegnare dei 
solidi elementari) ma anche con OpenGL il calcolo di 
minimi/massimi/intersezioni etc. era tutto a carico mio e non tutti i 
calcoli sono propriamente banali. Puoi cercare librerie di modellazione 
o di videogames per vedere se trovi qualcosa di pronto (per esempio le 
collisioni sono un problema classico dei videogame).
Ad ogni modo se vuoi fare quanto ho visto su quel link usando winform 
otterrai performance pessime.
Inoltre ricordati che WPF ragiona in modo vettoriale, quindi tutto 
quello che puoi esprimere in modo vettoriale è ovviamente un guadagno 
rispetto ai voxel.
BTW, il libro di riferimento per WPF in 3D è quello di Charles Petzold.


 BTW, il libro di riferimento per WPF in 3D è quello di Charles Petzold.
Darò sicuramente un'occhiata

 matlab? Può essere una soluzione percorribile?
Dipende se matlab espone un sdk che ti permette di fare questo tipo di 
integrazione. Non saprei.
