Я не могу сохранить изображение с помощью Julia REPL - PullRequest
1 голос
/ 10 февраля 2020

Я пытаюсь создать и сохранить изображение с помощью библиотеки изображений, но ничего не происходит.

using Images

function create(n::Int64)
    img = zeros(3,n,n)
    for i in 1:n
        for j in 1:n
            img[:,i,j] = i*j*rand(3)
        end
    end
    return img
end

save("img.png", colorview(RGB, create(300)))

Я пробовал библиотеку ImageView, но вместо RGB-изображения отображается изображение в градациях серого.

1 Ответ

1 голос
/ 11 февраля 2020

Ваш save должен был сработать, но он также предположительно показал предупреждение:

julia> save("/tmp/test.png", img)
┌ Warning: Mapping to the storage type failed; perhaps your data had out-of-range values?
│ Try `map(clamp01nan, img)` to clamp values to a valid range.
└ @ ImageMagick ~/.julia/packages/ImageMagick/0EUaI/src/ImageMagick.jl:171

Это потому, что ваши интенсивности выходят за рамки: JuliaImages использует шкалу от 0 до 1 для компоненты изображений RGB. Вот результат, который я получил:

result

Если вы посмотрите очень внимательно, вы можете увидеть несколько цветных пикселей, но остальные белые. Это связано с тем, что любое значение> = 1 интерпретируется как насыщенное.

См. Документацию JuliaImages: https://juliaimages.org/stable/quickstart/#The -0-к-1-шкале интенсивности-1 и https://juliaimages.org/stable/arrays_colors/#fixedpoint -1

...