50 using Vec = BaseVector<float>;
52 ModelToImage::ModelToImage(
55 int width,
int height,
56 float minZ,
float maxZ,
57 int minHorizontenAngle,
int maxHorizontalAngle,
58 int minVerticalAngle,
int maxVerticalAngle,
59 bool imageOptimization,
66 m_coordinateSystem = system;
69 m_minHAngle = minHorizontenAngle;
70 m_maxHAngle = maxHorizontalAngle;
71 m_minVAngle = minVerticalAngle;
72 m_maxVAngle = maxVerticalAngle;
78 minHorizontenAngle, maxHorizontalAngle,
79 minVerticalAngle, maxVerticalAngle,
80 imageOptimization, system);
86 ModelToImage::~ModelToImage()
93 cout <<
timestamp <<
"Initializting DepthListMatrix with dimensions " << m_width <<
" x " << m_height << endl;
95 for(
int i = 0; i < m_height; i++)
97 mat.
pixels.emplace_back(vector<vector<PanoramaPoint> >());
98 for(
int j = 0; j < m_width; j++)
100 mat.
pixels[i].push_back(vector<PanoramaPoint>());
105 size_t n_points = m_points->numPoints();
106 floatArr points = m_points->getPointArray();
114 for(
int i = 0; i < n_points; i++)
116 Vec ppt(points[3 * i], points[3 * i + 1], points[3 * i + 2]);
118 m_projection->project(
120 ppt.
x, ppt.
y, ppt.
z);
145 cout <<
timestamp <<
"Computing depth image. Image dimensions: " << m_width <<
" x " << m_height << endl;
148 for(
int i = 0; i < m_height; i++)
150 img.
pixels.emplace_back(vector<float>());
151 for(
int j = 0; j < m_width; j++)
153 img.
pixels[i].push_back(0.0f);
159 size_t n_points = m_points->numPoints();
160 floatArr points = m_points->getPointArray();
168 for(
int i = 0; i < n_points; i++)
170 m_projection->project(
172 points[3 * i], points[3 * i + 1], points[3 * i + 2]);
185 img.
pixels[img_y][img_x] = range;
192 void ModelToImage::writePGM(
string filename,
float cutoff)
196 computeDepthImage(img);
199 float min_r = std::min(m_minZ, img.
minRange);
200 float max_r = std::min(m_maxZ, img.
maxRange);
201 float interval = max_r - min_r;
203 cout << min_r <<
" " << max_r <<
" " << interval << endl;
206 std::ofstream out(filename);
208 out << img.
pixels[0].size() <<
" " << img.
pixels.size() <<
" 255" << endl;
210 for(
int i = 0; i < img.
pixels.size(); i++)
212 for(
int j = 0; j < img.
pixels[i].size(); j++)
214 int val = img.
pixels[i][j];
223 val = (int)((
float)(val - min_r) / interval * 255);
ProjectionType
The ProjectionType enum.
Image with list of projected points at each pixel.
static Timestamp timestamp
A global time stamp object for program runtime measurement.
std::shared_ptr< PointBuffer > PointBufferPtr
vector< vector< float > > pixels
boost::shared_array< float > floatArr
vector< vector< vector< PanoramaPoint > > > pixels
string getElapsedTime() const
Returns a string representation of the current timer value.
Image with single depth information.