30 CImage& img,
bool verticalFlip,
bool forceRGB,
bool tricolor)
const 38 unsigned char* destPtr;
39 for (
unsigned int y = 0; y < size_y; y++)
42 destPtr = img(0, size_y - 1 - y);
45 for (
unsigned int x = 0; x < size_x; x++)
47 *destPtr++ = l2p_255(*srcPtr++);
55 unsigned char* destPtr;
56 for (
unsigned int y = 0; y < size_y; y++)
59 destPtr = img(0, size_y - 1 - y);
62 for (
unsigned int x = 0; x < size_x; x++)
64 uint8_t c = l2p_255(*srcPtr++);
79 unsigned char* destPtr;
80 for (
unsigned int y = 0; y < size_y; y++)
83 destPtr = img(0, size_y - 1 - y);
86 for (
unsigned int x = 0; x < size_x; x++)
88 uint8_t c = l2p_255(*srcPtr++);
103 unsigned char* destPtr;
104 for (
unsigned int y = 0; y < size_y; y++)
107 destPtr = img(0, size_y - 1 - y);
110 for (
unsigned int x = 0; x < size_x; x++)
112 uint8_t c = l2p_255(*srcPtr++);
133 CImage& img,
bool verticalFlip,
bool forceRGB)
const 135 getAsImage(img, verticalFlip, forceRGB);
138 if (insertionOptions.CFD_features_gaussian_size != 0)
140 img,
round(insertionOptions.CFD_features_gaussian_size));
141 if (insertionOptions.CFD_features_median_size != 0)
151 if (!genericMapParams.enableSaveAs3DObject)
return;
157 outObj->setPlaneCorners(x_min, x_max, y_min, y_max);
159 outObj->setLocation(0, 0, insertionOptions.mapAltitude);
167 for (
unsigned int y = 0; y < size_y; y++)
169 unsigned char* destPtr_color = imgColor(0, y);
170 unsigned char* destPtr_trans = imgTrans(0, y);
171 for (
unsigned int x = 0; x < size_x; x++)
173 uint8_t cell255 = l2p_255(*srcPtr++);
174 *destPtr_color++ = cell255;
176 int8_t auxC = (int8_t)((
signed short)cell255) - 127;
177 *destPtr_trans++ = auxC > 0 ? (auxC << 1) : ((-auxC) << 1);
181 outObj->assignImage(imgColor, imgTrans);
182 outSetOfObj->insert(outObj);
195 for (
size_t i = 1; i + 1 < size_x; i++)
198 for (
size_t j = 1; j + 1 < size_y; j++)
201 bool is_surrounded =
true;
202 for (
int di = -1; di <= 1 && is_surrounded; di++)
203 for (
int dj = -1; dj <= 1 && is_surrounded; dj++)
204 if ((di != 0 || dj != 0) &&
205 getCell(i + di, j + dj) > occup_threshold)
206 is_surrounded =
false;
208 if (getCell(i, j) < occup_threshold && !is_surrounded)
void clear()
Erase all the contents of the map.
static Ptr Create(Args &&... args)
void reserve(size_t newLength) override
Reserves memory for a given number of points: the size of the map does not change, it only reserves the memory.
A cloud of points in 2D or 3D, which can be built from a sequence of laser scans. ...
void insertPoint(float x, float y, float z=0)
Provides a way to insert (append) individual points into the map: the missing fields of child classes...
void filterGaussian(CImage &out_img, int W=3, int H=3, double sigma=1.0) const
Filter the image with a Gaussian filter with a window size WxH, replacing "this" image by the filtere...
void getAsImageFiltered(img::CImage &img, bool verticalFlip=false, bool forceRGB=false) const
Returns the grid as a 8-bit graylevel image, where each pixel is a cell (output image is RGB only if ...
void resize(std::size_t width, std::size_t height, TImageChannels nChannels, PixelDepth depth=PixelDepth::D8U)
Changes the size of the image, erasing previous contents (does NOT scale its current content...
This namespace contains representation of robot actions and observations.
void getAsPointCloud(mrpt::maps::CSimplePointsMap &pm, const float occup_threshold=0.5f) const
Get a point cloud with all (border) occupied cells as points.
Classes for 2D/3D geometry representation, both of single values and probability density distribution...
void getAsImage(mrpt::img::CImage &img, bool verticalFlip=false, bool forceRGB=false, bool tricolor=false) const
Returns the grid as a 8-bit graylevel image, where each pixel is a cell (output image is RGB only if ...
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries.
void filterMedian(CImage &out_img, int W=3) const
Filter the image with a Median filter with a window size WxW, returning the filtered image in out_img...
void getAs3DObject(mrpt::opengl::CSetOfObjects::Ptr &outObj) const override
Returns a 3D plane with its texture being the occupancy grid and transparency proportional to "uncert...
OccGridCellTraits::cellType cellType
The type of the map cells:
A class for storing images as grayscale or RGB bitmaps.
int round(const T value)
Returns the closer integer (int) to x.