Packages
image
0.13.1
0.72.0
0.71.0
0.70.0
0.69.0
0.68.0
0.67.0
0.67.0-dev
retired
0.66.0
0.65.0
0.64.0
0.63.0
0.62.1
0.62.0
0.61.1
0.61.0
0.60.0
0.59.3
0.59.2
0.59.1
0.59.0
0.58.0
0.57.0
0.56.1
0.56.0
0.55.2
0.55.1
retired
0.55.0
0.54.4
0.54.3
0.54.2
0.54.1
0.54.0
0.53.0
0.52.3
0.52.2
0.52.1
0.52.0
retired
0.51.0
0.50.0
0.49.0
0.48.1
0.48.0
0.47.0
0.46.0
0.45.0
0.44.0
0.43.2
0.43.1
0.43.0
0.42.0
0.41.0
0.40.0
0.39.3
0.39.2
0.39.1
0.39.0
0.38.4
0.38.3
0.38.2
0.38.1
0.38.0
0.37.0
0.36.2
0.36.1
0.36.0
0.35.0
0.34.0
0.33.0
0.32.0
0.31.1
0.31.0
0.30.0
0.29.0
0.28.2
0.28.1
0.28.0
0.27.0
0.26.0
0.25.1
0.25.0
0.24.1
0.24.0
0.23.2
0.23.1
0.23.0
0.22.1
0.22.0
0.21.0
0.20.0
retired
0.19.0
0.18.1
0.18.0
0.17.0
0.16.0
0.15.0
0.14.4
0.14.2
0.14.1
0.14.0
retired
0.13.1
0.13.0
0.12.0
0.11.0
0.10.0
0.10.0-rc.0
retired
0.9.0
retired
0.8.0
0.7.0
0.6.0
0.5.0
0.4.0
0.3.0
0.2.0
0.1.0
An approachable image processing library primarily based upon Vix and libvips that is NIF-based, fast, multi-threaded, pipelined and has a low memory footprint.
Current section
Files
Jump to
Current section
Files
lib/image/nx.ex
if match?({:module, _module}, Code.ensure_compiled(Nx)) do
defmodule Image.Nx do
@moduledoc false
# Nx helpers
# libvips expect the dimensions to be [width, height, bands]. In Nx
# its common they are [height, width, bands]. So we transpose the
# axes if required to conform to `libvips` requirements.
def transpose(tensor, {_, _, bands}, [:height, :width, band]) when bands in 1..5 do
{:ok, Nx.transpose(tensor, axes: [:width, :height, band])}
end
def transpose(tensor, {_, _, bands}, [:width, :height, _band]) when bands in 1..5 do
{:ok, tensor}
end
def transpose(_tensor, {_, _, bands}, _names) when bands not in 1..5 do
{:error, "Tensor must be in the range of 1 and 5 image bands. Found #{inspect bands}."}
end
def transpose(_tensor, shape, _names) when tuple_size(shape) > 3 do
{:error, "Tensor must have only three dimensions. Found #{inspect tuple_size(shape)}."}
end
def transpose(_tensor, _shape, names) do
{:error,
"Tensor must have dimension names of [:height, :width, :bands] or " <>
"[:width, :height, :bands]. Found #{inspect names}."}
end
end
end