36 #include "modules/perception/lidar/segmentation/ncut/common/graph_felzenszwalb/convolve.h" 37 #include "modules/perception/lidar/segmentation/ncut/common/graph_felzenszwalb/image.h" 38 #include "modules/perception/lidar/segmentation/ncut/common/graph_felzenszwalb/imconv.h" 39 #include "modules/perception/lidar/segmentation/ncut/common/graph_felzenszwalb/misc.h" 42 namespace perception {
47 std::vector<float> &mask = *mask_input;
48 int len = mask.size();
50 for (
int i = 1; i < len; i++) {
53 sum = 2 * sum + fabs(mask[0]);
54 for (
int i = 0; i < len; i++) {
59 #define MAKE_FILTER(name, fun) \ 60 std::vector<float> make_##name(float sigma) { \ 61 sigma = std::max(sigma, 0.01F); \ 62 int len = static_cast<int>(ceil(sigma * WIDTH)) + 1; \ 63 std::vector<float> mask(len); \ 64 for (int i = 0; i < len; i++) { \ 72 std::vector<float> mask = make_fgauss(sigma);
90 int width = src->
width();
91 int height = src->
height();
93 for (
int y = 1; y < height - 1; y++) {
94 for (
int x = 1; x < width - 1; x++) {
99 imRef(dst, x, y) = d2x + d2y;
Image< float > * laplacian(Image< float > *src)
Definition: filter.h:89
int height() const
Definition: image.h:55
int width() const
Definition: image.h:52
#define imRef(im, x, y)
Definition: image.h:68
void convolve_even(Image< float > *src, Image< float > *dst, const std::vector< float > &mask)
Definition: convolve.h:41
Image< float > * smooth(Image< float > *src, float sigma)
Definition: filter.h:71
Image< float > * image_uchar2float(Image< uchar > *input)
Definition: imconv.h:70
MAKE_FILTER(fgauss, exp(-0.5 *square(i/sigma)))
const double WIDTH
Definition: filter.h:44
T square(const T &x)
Definition: misc.h:56
void normalize(std::vector< float > *mask_input)
Definition: filter.h:46