Novità in Python e Numpy, cercando di creare matrici tridimensionali. Il mio problema è che l'ordine delle dimensioni è spento rispetto a Matlab. In realtà l'ordine non ha alcun senso.Serie tridimensionale in numpy
Creazione di una matrice:
x = np.zeros((2,3,4))
Nel mio mondo ciò dovrebbe comportare 2 righe, 3 colonne e 4 dimensioni di profondità e dovrebbe essere presentata come:
[0 0 0 [0 0 0 [0 0 0 [0 0 0
0 0 0] 0 0 0] 0 0 0] 0 0 0]
Seperating su ogni dimensione di profondità . Invece è presentato come
[0 0 0 0 [0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0] 0 0 0 0]
Cioè, 3 righe, 4 colonne e 2 dimensioni di profondità. Cioè, la prima dimensione è la "profondità". Per aggiungere ulteriore a questo problema, importando un'immagine con OpenCV la dimensione del colore è l'ultima dimensione, cioè, vedo le informazioni sul colore come la dimensione della profondità. Ciò complica notevolmente le cose se tutto ciò che voglio fare è provare qualcosa su un array tridimensionale più piccolo conosciuto.
Ho frainteso qualcosa? In caso contrario, perché diamine è numpy usando un modo così poco intuitivo di lavorare con array 3D dimensionali?
OK, quindi se tutto è calcolato correttamente, posso prevedere che un algoritmo sia lo stesso sia per le matrici più piccole sia per le immagini di grandi dimensioni? Trattare la terza dimensione come "profondità". Il che ha senso dal momento che i calcoli trattano tutte le dimensioni allo stesso modo. Ma c'è un modo per rendere Numpy presente correttamente? Temo che il collegamento non abbia aiutato molto a riguardo :( – Vejto
Matlab e Numpy non trattano le immagini allo stesso modo, se si utilizza OpenCV quindi rappresenta le immagini come BGR anziché RGB, quindi Matlab legge la matrice utilizzando fortran. Quindi devi tener conto di tutte queste cose quando fai il porting del codice da matlab a numpy – jabaldonedo
Ottimo, ho provato alcune cose ed è, ovviamente, come dici tu. Sono a conoscenza della presentazione di BGR (mi infastidisce ma non tanto quanto.) Ho solo desiderato che ci fosse un modo per presentarlo "correttamente". Per ora, guarderò ogni singolo da meno separatamente (per una matrice 3D e) e [:,:, 1] viene visualizzato correttamente mentre e [:,::: 1] viene visualizzato illogico Grazie! – Vejto