nk 1.0.0
C++ Numerical Computing Runtime
Loading...
Searching...
No Matches
type_convert.hpp
Go to the documentation of this file.
1// toolboxes/image/include/nk/image/type_convert/type_convert.hpp
2//
3// Image type conversion and class-related helpers.
4
5#pragma once
6
7#include <limits>
8#include <memory_resource>
9#include <string>
10#include <tuple>
11#include <nk/value/value.hpp>
12
13namespace nk::image {
14
17
18
32
42Value im2double(const Value &x, std::pmr::memory_resource *mr = nullptr);
43
52Value im2single(const Value &x, std::pmr::memory_resource *mr = nullptr);
53
62Value im2uint8(const Value &x, std::pmr::memory_resource *mr = nullptr);
63
70Value im2uint16(const Value &x, std::pmr::memory_resource *mr = nullptr);
71
78Value im2int16(const Value &x, std::pmr::memory_resource *mr = nullptr);
79
93 double lo = std::numeric_limits<double>::quiet_NaN(),
94 double hi = std::numeric_limits<double>::quiet_NaN(),
95 std::pmr::memory_resource *mr = nullptr);
96
106Value im2gray(const Value &x, std::pmr::memory_resource *mr = nullptr);
107
117Value rgb2gray(const Value &x, std::pmr::memory_resource *mr = nullptr);
118
128Value getrangefromclass(const Value &I, std::pmr::memory_resource *mr = nullptr);
129
142std::tuple<Value, Value>
143gray2ind(const Value &I, int n, std::pmr::memory_resource *mr = nullptr);
144
155Value ind2gray(const Value &idx, const Value &map,
156 std::pmr::memory_resource *mr = nullptr);
157
168Value ind2rgb(const Value &idx, const Value &map,
169 std::pmr::memory_resource *mr = nullptr);
170
180Value iptnum2ordinal(double n, std::pmr::memory_resource *mr = nullptr);
181
195Value imcast(const Value &I, const std::string &type,
196 std::pmr::memory_resource *mr = nullptr);
197
211Value isbw(const Value &BW, const std::string &mode,
212 std::pmr::memory_resource *mr = nullptr);
213
224Value isgray(const Value &I, std::pmr::memory_resource *mr = nullptr);
225
235Value isind(const Value &I, std::pmr::memory_resource *mr = nullptr);
236
247Value isrgb(const Value &I, std::pmr::memory_resource *mr = nullptr);
248
258Value iscolormap(const Value &cmap, std::pmr::memory_resource *mr = nullptr);
259
275Value intlut(const Value &A, const Value &LUT,
276 std::pmr::memory_resource *mr = nullptr);
277
278
280} // namespace nk::image
Core MATLAB-compatible multidimensional array and scalar value type.
Definition value.hpp:61
Value im2gray(const Value &x, std::pmr::memory_resource *mr=nullptr)
RGB → grayscale dispatcher (Y = im2gray(X)).
Value getrangefromclass(const Value &I, std::pmr::memory_resource *mr=nullptr)
Class display range (r = getrangefromclass(I)).
Value iptnum2ordinal(double n, std::pmr::memory_resource *mr=nullptr)
English ordinal-form string (s = iptnum2ordinal(n)).
Value iscolormap(const Value &cmap, std::pmr::memory_resource *mr=nullptr)
Colormap-shape predicate (tf = iscolormap(cmap)).
Value mat2gray(const Value &x, double lo=std::numeric_limits< double >::quiet_NaN(), double hi=std::numeric_limits< double >::quiet_NaN(), std::pmr::memory_resource *mr=nullptr)
Linear rescale to [0, 1] DOUBLE (B = mat2gray(A, lo, hi)).
Value intlut(const Value &A, const Value &LUT, std::pmr::memory_resource *mr=nullptr)
Apply a look-up table to an integer image (B = intlut(A, LUT)).
Value isind(const Value &I, std::pmr::memory_resource *mr=nullptr)
Indexed-image predicate (tf = isind(I)).
Value ind2gray(const Value &idx, const Value &map, std::pmr::memory_resource *mr=nullptr)
Indexed → grayscale (I = ind2gray(idx, map)).
Value im2int16(const Value &x, std::pmr::memory_resource *mr=nullptr)
Convert to INT16 (B = im2int16(A)).
Value imcast(const Value &I, const std::string &type, std::pmr::memory_resource *mr=nullptr)
Generic class converter (B = imcast(I, type)).
Value isbw(const Value &BW, const std::string &mode, std::pmr::memory_resource *mr=nullptr)
Binary-image predicate (tf = isbw(BW, mode)).
std::tuple< Value, Value > gray2ind(const Value &I, int n, std::pmr::memory_resource *mr=nullptr)
Grayscale → indexed ([ind, map] = gray2ind(I, n)).
Value im2single(const Value &x, std::pmr::memory_resource *mr=nullptr)
Convert to SINGLE in [0, 1] (B = im2single(A)).
Value im2uint8(const Value &x, std::pmr::memory_resource *mr=nullptr)
Convert to UINT8 (B = im2uint8(A)).
Value isrgb(const Value &I, std::pmr::memory_resource *mr=nullptr)
RGB-image predicate (tf = isrgb(I)).
Value im2double(const Value &x, std::pmr::memory_resource *mr=nullptr)
Convert to DOUBLE in [0, 1] (B = im2double(A)).
Value isgray(const Value &I, std::pmr::memory_resource *mr=nullptr)
Grayscale-image predicate (tf = isgray(I)).
Value im2uint16(const Value &x, std::pmr::memory_resource *mr=nullptr)
Convert to UINT16 (B = im2uint16(A)).
Value rgb2gray(const Value &x, std::pmr::memory_resource *mr=nullptr)
Rec.
Value ind2rgb(const Value &idx, const Value &map, std::pmr::memory_resource *mr=nullptr)
Indexed → RGB (RGB = ind2rgb(idx, map)).