nk 1.0.0
C++ Numerical Computing Runtime
Loading...
Searching...
No Matches
region.hpp
Go to the documentation of this file.
1
3// toolboxes/image/include/nk/image/region/region.hpp
4//
5// Connected-component labelling and basic region descriptors.
6
7#pragma once
8
9#include <memory_resource>
10#include <nk/value/value.hpp>
11
12#include <string>
13#include <tuple>
14#include <vector>
15
16namespace nk::image {
17
20
21
33std::tuple<Value, Value>
34bwlabel(const Value &BW, int conn,
35 std::pmr::memory_resource *mr = nullptr);
36
52Value bwconncomp(const Value &BW, int conn,
53 std::pmr::memory_resource *mr = nullptr);
54
73 std::pmr::memory_resource *mr = nullptr);
74
93Value cc2bw(const Value &CC, const Value &objects_to_keep,
94 std::pmr::memory_resource *mr = nullptr);
95
141Value bwpropfilt(const Value &BW, const Value &CC, const Value &marker,
142 const std::string &attribute,
143 double p_min, double p_max,
144 std::size_t keep_n, bool keep_largest,
145 int conn,
146 std::pmr::memory_resource *mr = nullptr);
147
158 std::pmr::memory_resource *mr = nullptr);
159
170Value bwperim(const Value &BW, int conn,
171 std::pmr::memory_resource *mr = nullptr);
172
184Value bwareaopen(const Value &BW, int P, int conn,
185 std::pmr::memory_resource *mr = nullptr);
186
202Value bwboundaries(const Value &BW, int conn,
203 Value *Lout = nullptr, int *Nout = nullptr,
204 std::pmr::memory_resource *mr = nullptr);
205
226Value regionprops(const Value &BW_or_L,
227 const std::vector<std::string> &props,
228 const Value &intensity,
229 std::pmr::memory_resource *mr = nullptr);
230
243 std::pmr::memory_resource *mr = nullptr);
244
258Value roicolor(const Value &A, const Value &low_or_v, double high,
259 bool is_range,
260 std::pmr::memory_resource *mr = nullptr);
261
283Value fchcode(const Value &bound,
284 std::pmr::memory_resource *mr = nullptr);
285
295Value bweuler(const Value &BW, int conn,
296 std::pmr::memory_resource *mr = nullptr);
297
314Value bwareafilt(const Value &BW, double lo, double hi,
315 size_t n_keep, bool keep_largest, int conn,
316 std::pmr::memory_resource *mr = nullptr);
317
331std::tuple<Value, Value>
332bwselect(const Value &BW, const Value &cols, const Value &rows, int conn,
333 std::pmr::memory_resource *mr = nullptr);
334
335
337} // namespace nk::image
Core MATLAB-compatible multidimensional array and scalar value type.
Definition value.hpp:61
std::tuple< Value, Value > bwlabel(const Value &BW, int conn, std::pmr::memory_resource *mr=nullptr)
Connected-component labelling ([L, num] = bwlabel(BW, conn)).
Value bwboundaries(const Value &BW, int conn, Value *Lout=nullptr, int *Nout=nullptr, std::pmr::memory_resource *mr=nullptr)
Trace boundary contours (B = bwboundaries(BW, conn)).
Value bwareaopen(const Value &BW, int P, int conn, std::pmr::memory_resource *mr=nullptr)
Remove small components (BW2 = bwareaopen(BW, P, conn)).
Value bwperim(const Value &BW, int conn, std::pmr::memory_resource *mr=nullptr)
Perimeter mask (BW2 = bwperim(BW, conn)).
Value bwdist(const Value &BW, std::pmr::memory_resource *mr=nullptr)
Euclidean distance transform (D = bwdist(BW)).
Value bweuler(const Value &BW, int conn, std::pmr::memory_resource *mr=nullptr)
Euler number objects − holes (E = bweuler(BW, conn)).
Value roicolor(const Value &A, const Value &low_or_v, double high, bool is_range, std::pmr::memory_resource *mr=nullptr)
Region-of-interest mask (BW = roicolor(A, low, high)).
Value bwconncomp(const Value &BW, int conn, std::pmr::memory_resource *mr=nullptr)
Connected-component struct (CC = bwconncomp(BW, conn)).
Value labelmatrix(const Value &CC, std::pmr::memory_resource *mr=nullptr)
Connected-component label matrix (L = labelmatrix(CC)).
Value cc2bw(const Value &CC, const Value &objects_to_keep, std::pmr::memory_resource *mr=nullptr)
Reconstruct binary image from a bwconncomp struct (BW = cc2bw(CC, ...)).
Value bwareafilt(const Value &BW, double lo, double hi, size_t n_keep, bool keep_largest, int conn, std::pmr::memory_resource *mr=nullptr)
Filter connected components by area (BW2 = bwareafilt(...)).
Value regionprops(const Value &BW_or_L, const std::vector< std::string > &props, const Value &intensity, std::pmr::memory_resource *mr=nullptr)
Per-region descriptors (S = regionprops(BW_or_L, props)).
Value bwarea(const Value &BW, std::pmr::memory_resource *mr=nullptr)
Total foreground area (A = bwarea(BW)).
std::tuple< Value, Value > bwselect(const Value &BW, const Value &cols, const Value &rows, int conn, std::pmr::memory_resource *mr=nullptr)
Select components by seed pixels ([BW2, idx] = bwselect(BW, cols, rows, conn)).
Value fchcode(const Value &bound, std::pmr::memory_resource *mr=nullptr)
Freeman 8-direction chain code (fcc = fchcode(bound)).
Value bwpropfilt(const Value &BW, const Value &CC, const Value &marker, const std::string &attribute, double p_min, double p_max, std::size_t keep_n, bool keep_largest, int conn, std::pmr::memory_resource *mr=nullptr)
Filter connected components by attribute value (BW2 = bwpropfilt(BW, attrib, range_or_n,...