35 #include "modules/perception/lidar/detector/ncut_segmentation/common/graph_felzenszwalb/image.h" 38 namespace perception {
42 const std::vector<float> &mask) {
43 int width = src->
width();
44 int height = src->
height();
45 int len = mask.size();
46 for (
int y = 0; y < height; y++) {
47 for (
int x = 0; x < width; x++) {
48 float sum = mask[0] *
imRef(src, x, y);
49 for (
int i = 1; i < len; i++) {
50 sum += mask[i] * (
imRef(src, std::max(x - i, 0), y) +
51 imRef(src, std::min(x + i, width - 1), y));
53 imRef(dst, y, x) = sum;
59 const std::vector<float> &mask) {
60 int width = src->
width();
61 int height = src->
height();
62 int len = mask.size();
63 for (
int y = 0; y < height; y++) {
64 for (
int x = 0; x < width; x++) {
65 float sum = mask[0] *
imRef(src, x, y);
66 for (
int i = 1; i < len; i++) {
67 sum += mask[i] * (
imRef(src, std::max(x - i, 0), y) -
68 imRef(src, std::min(x + i, width - 1), y));
70 imRef(dst, y, x) = sum;
void convolve_odd(Image< float > *src, Image< float > *dst, const std::vector< float > &mask)
Definition: convolve.h:58
int height() const
Definition: image.h:55
PlanningContext is the runtime context in planning. It is persistent across multiple frames...
Definition: atomic_hash_map.h:25
int width() const
Definition: image.h:52
void convolve_even(Image< float > *src, Image< float > *dst, const std::vector< float > &mask)
Definition: convolve.h:41
#define imRef(im, x, y)
Definition: image.h:68