Como exibir uma (224, 224, 3) imagem em um Jupyter Notebook com Julia?

0

Pergunta

Eu tenho um 224x224 imagem com 3 canais. Eu quero exibir a imagem em uma Jupyter Notebook. Quando eu IJulia.display(imgs[:, :, :, 1]), tudo que eu vejo é os números brutos e não a imagem real. O código não funciona com o ImageView.imshow mas eu quero capturar a imagem no próprio computador portátil. O que eu preciso fazer para meus dados para poder mostrá-la como uma imagem?

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

Melhor resposta

2

Você simplesmente precisa reformular como 3x224x224.

Isto irá desenhar algo

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

Isso irá retornar um erro

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

Portanto, se você tiver uma matriz x que é em formato de (i,j,3) você quer primeiro a redesenhar, ou seja, como (3,i,j) e, em seguida, usar colorview.

enter image description here

2021-11-24 22:37:59

Vou observe que, devido a forma como os meus dados de configuração, que eu tinha que fazer Images.colorview(RGB, permutedims(x[:, :, :, 1], [3,1,2])) para ver a imagem corretamente.
logankilpatrick
1

Pelo caminho, há uma diferença entre reformulação e permuting as dimensões, e você vai obter resultados diferentes a partir de cada um.

Aqui está uma matriz onde as dimensões finais têm valores entre 0 e 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

Se você reformular a matriz você verá isso:

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

reshaped array1

considerando que se permutar as dimensões, você verá isso:

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

permuted dims2

PermutedDimsArray em Imagens retorna uma vista do original, portanto, ao contrário de permutedims, nenhuma cópia ocorre.

2021-11-24 22:22:07

Em outros idiomas

Esta página está em outros idiomas

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