Volume Cartographer 2.27.0
FloodFill.hpp
Go to the documentation of this file.
1#pragma once
2
5#include <cstddef>
6#include <cstdint>
7#include <vector>
8
9#include <opencv2/core.hpp>
10
12
14{
15
17std::vector<cv::Vec3i> GetNeighbors(const cv::Vec3i& v);
18
20int EuclideanDistance(const cv::Vec3i& start, const cv::Vec3i& end);
21
29std::size_t MeasureThickness(
30 const cv::Vec3i& seed,
31 const cv::Mat& slice,
32 std::uint16_t low,
33 std::uint16_t high,
34 bool measureVert,
35 std::size_t maxRadius);
36
38template <class Container>
39auto Median(Container c)
40{
41 std::nth_element(c.begin(), c.begin() + c.size() / 2, c.end());
42 return c[c.size() / 2];
43}
44
51std::vector<cv::Vec3i> DoFloodFill(
52 const std::vector<cv::Vec3i>& pts,
53 int bound,
54 cv::Mat img,
55 std::uint16_t low,
56 std::uint16_t high);
57
58} // namespace volcart::segmentation
Segmentation algorithms and utilities library
std::size_t MeasureThickness(const cv::Vec3i &seed, const cv::Mat &slice, std::uint16_t low, std::uint16_t high, bool measureVert, std::size_t maxRadius)
std::vector< cv::Vec3i > GetNeighbors(const cv::Vec3i &v)
int EuclideanDistance(const cv::Vec3i &start, const cv::Vec3i &end)
auto Median(Container c)
Definition: FloodFill.hpp:39
std::vector< cv::Vec3i > DoFloodFill(const std::vector< cv::Vec3i > &pts, int bound, cv::Mat img, std::uint16_t low, std::uint16_t high)