[Home]
[Edit this page]
[Recent Changes]
[Special Pages]
[Help]
CppVclBitmapToMatrix
[Edit this page] [Page history] [What links here] [Discuss this topic] [Printer Friendly]
CppVclBitmapToMatrix
(C++ VCL) Convert a bitmap to a matrix
The matrix is put in a two-dimensional std::vector.
template <class T> std::vector<std::vector<T> > GetMatrix(const TImage * const image)
{
assert(image!=0);
const T zero = static_cast<T>(0.0);
const int width = image->Width;
const int height = image->Height;
std::vector<std::vector<T> > matrix(width,std::vector<double>(height,zero));
for (int y=0; y!=height; ++y)
{
const unsigned char * const line
= static_cast<const unsigned char *>(image->Picture->Bitmap->ScanLine[y]);
for (int x=0; x!=width; ++x)
{
Assert(x < static_cast<int>(matrix.size()));
Assert(y < static_cast<int>(matrix[x].size()));
const T grey = static_cast<T>(
line[x*3+0] + line[x*3+1] + line[x*3+2])
/ static_cast<T>(3.0);
matrix[x][y] = grey;
}
}
return matrix;
}
Code links
[Edit this page] [Page history] [What links here] [Discuss this topic] [Printer Friendly]
