Comment faire pour afficher un (224, 224, 3) de l'image dans un Jupyter Portable avec Julia?

0

La question

J'ai un 224x224 image avec 3 canaux. Je veux afficher l'image dans une Jupyter ordinateur Portable. Quand je fais IJulia.display(imgs[:, :, :, 1]), tout ce que je obtenir les chiffres bruts et pas l'image. Le code ne fonctionne pas avec le ImageView.imshow mais je veux capturer l'image dans l'ordinateur portable lui-même. Que dois-je faire pour que mes données pour être en mesure de le montrer comme une image?

224×224×3 Array{Float32, 3}:
[:, :, 1] =
 0.117647   0.117647   0.117647   0.117647   …  0.384314  0.396078  0.403922
 0.117647   0.117647   0.117647   0.117647      0.384314  0.392157  0.4
 0.117647   0.117647   0.117647   0.117647      0.384314  0.388235  0.392157
 0.121569   0.117647   0.121569   0.121569      0.388235  0.388235  0.388235
 0.12549    0.117647   0.12549    0.129412      0.396078  0.396078  0.396078
 0.12549    0.117647   0.12549    0.129412   …  0.407843  0.407843  0.407843
 0.12549    0.117647   0.12549    0.129412      0.423529  0.423529  0.423529
 0.145098   0.133333   0.129412   0.129412      0.419608  0.419608  0.419608
 0.14902    0.141176   0.137255   0.137255      0.407843  0.407843  0.407843
 0.141176   0.145098   0.141176   0.137255      0.396078  0.396078  0.396078
 ⋮                                           ⋱                     
julia jupyter-notebook
2021-11-22 16:30:28
2

La meilleure réponse

2

Vous avez simplement besoin de remodeler comme 3x224x224.

Ce sera quelque chose de l'intrigue

using Images
Images.colorview(RGB, rand(3,224,224))

Ceci renvoie une erreur

using Images
Images.colorview(RGB, rand(224,224,3))

Donc si vous avez un tableau x c'est dans le format (i,j,3) vous voulez d'abord refaçonner comme (3,i,j) et puis utiliser colorview.

enter image description here

2021-11-24 22:37:59

Je note qu'en raison de la façon dont mes données de configuration, j'ai eu à faire Images.colorview(RGB, permutedims(x[:, :, :, 1], [3,1,2])) pour afficher l'image correctement.
logankilpatrick
1

En passant, il y a une différence entre la restructuration et permutant les dimensions, et vous obtiendrez des résultats différents de chacun.

Voici un tableau où les dimensions finales ont des valeurs entre 0 et 1.

using Images

img = Array{Float32}(undef, 5, 5, 3)
img[:, :, 1] = range(0, 1, length= 5^2)
img[:, :, 2] = range(0, 1, length= 5^2)
img[:, :, 3] = range(0, 1, length= 5^2)
5×5×3 Array{Float32, 3}:
[:, :, 1] =
 0.0        0.208333  0.416667  0.625     0.833333
 0.0416667  0.25      0.458333  0.666667  0.875
 0.0833333  0.291667  0.5       0.708333  0.916667
 0.125      0.333333  0.541667  0.75      0.958333
 0.166667   0.375     0.583333  0.791667  1.0

[:, :, 2] =
 0.0        0.208333  0.416667  0.625     0.833333
 0.0416667  0.25      0.458333  0.666667  0.875
 0.0833333  0.291667  0.5       0.708333  0.916667
 0.125      0.333333  0.541667  0.75      0.958333
 0.166667   0.375     0.583333  0.791667  1.0

[:, :, 3] =
 0.0        0.208333  0.416667  0.625     0.833333
 0.0416667  0.25      0.458333  0.666667  0.875
 0.0833333  0.291667  0.5       0.708333  0.916667
 0.125      0.333333  0.541667  0.75      0.958333
 0.166667   0.375     0.583333  0.791667  1.0

Si vous remodeler la matrice, vous verrez ceci:

colorview(RGB, reshape(img, (3, 5, 5)))

reshaped array1

alors que si l'on permute les dimensions, vous verrez ceci:

colorview(RGB, PermutedDimsArray(img, (3,1,2)))

permuted dims2

PermutedDimsArray dans les Images renvoie une vue de l'original, de sorte que, contrairement à permutedims, pas la copie se produit.

2021-11-24 22:22:07

Dans d'autres langues

Cette page est dans d'autres langues

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................