2 #include <nav_msgs/OccupancyGrid.h> 6 #include <opencv/cv.hpp> 15 VoronoiPathGenerator::VoronoiPathGenerator()
20 void VoronoiPathGenerator::prepareMap(
const Mat& _map, Mat& _smoothedMap,
int blurSize)
23 _map.convertTo(srcMap, CV_8UC1);
25 for(
int i = 0; i < srcMap.cols * srcMap.rows; i++)
27 if((
signed char)_map.data[i] < 0)
31 _smoothedMap = srcMap;
37 cv::Size sz(blurSize, blurSize);
38 cv::GaussianBlur(srcMap, srcMap, sz, 0);
39 cv::GaussianBlur(srcMap, srcMap, sz, 0);
48 cv::bitwise_not(srcMap, srcMap);
49 cv::threshold(srcMap, _smoothedMap, 10, 255, CV_THRESH_BINARY | CV_THRESH_OTSU);
53 void VoronoiPathGenerator::computeDistanceField(
const cv::Mat& _map, cv::Mat& _distField)
55 cv::distanceTransform(_map, _distField, CV_DIST_L2, 3);
58 void VoronoiPathGenerator::computeVoronoiMap(
const cv::Mat& _distField, cv::Mat& _voronoiMap)
60 Mat srcMap = _distField;
61 srcMap.convertTo(_voronoiMap, CV_8UC1, 0.0);
64 cv::threshold(_voronoiMap, _voronoiMap, 1, 255, CV_THRESH_BINARY);
void greyscale_thinning(const cv::Mat &src, cv::Mat &dst)
Function for finding the ridge of a distance graph.
void sceletonize(const cv::Mat &src, cv::Mat &dst)
Function for thinning the given binary image (Paper Zhang-Suen Thinning)