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++)
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++)
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++)
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)
142 img.filterMedian(
img,
round(insertionOptions.CFD_features_median_size));
151 if (!genericMapParams.enableSaveAs3DObject)
return;
156 std::make_shared<opengl::CTexturedPlane>();
158 outObj->setPlaneCorners(x_min, x_max, y_min, y_max);
160 outObj->setLocation(0, 0, insertionOptions.mapAltitude);
168 for (
unsigned int y = 0;
y < size_y;
y++)
170 unsigned char* destPtr_color = imgColor(0,
y);
171 unsigned char* destPtr_trans = imgTrans(0,
y);
172 for (
unsigned int x = 0;
x < size_x;
x++)
174 uint8_t cell255 = l2p_255(*srcPtr++);
175 *destPtr_color++ = cell255;
178 *destPtr_trans++ = auxC > 0 ? (auxC << 1) : ((-auxC) << 1);
182 outObj->assignImage_fast(imgColor, imgTrans);
183 outSetOfObj->insert(outObj);
196 for (
size_t i = 1; i + 1 < size_x; i++)
199 for (
size_t j = 1; j + 1 < size_y; j++)
202 bool is_surrounded =
true;
203 for (
int di = -1; di <= 1 && is_surrounded; di++)
204 for (
int dj = -1; dj <= 1 && is_surrounded; dj++)
205 if ((di != 0 || dj != 0) &&
206 getCell(i + di, j + dj) > occup_threshold)
207 is_surrounded =
false;
209 if (getCell(i, j) < occup_threshold && !is_surrounded)
void clear()
Erase all the contents of the map.
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 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 ...
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 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.