A simple reader class for the Netpbm format (https://en.wikipedia.org/wiki/Netpbm_format). So far, only black and white (*.pbm) and grayscale (*pgm) images are supported.
#include <dumux/io/rasterimagereader.hh>
|
static Format | getFormat (const std::vector< std::string_view > &firstLineTokes) |
| A helper function to retrieve the format from tokens of the file's first line. More...
|
|
static Result< bool > | readPBM (const std::string &fileName, const bool useDuneGridOrdering=true) |
| Reads a *pbm (black and white) in ASCII or binary encoding. Returns a struct that contains both the pixel values and the header data. More...
|
|
template<class ValueType = std::uint8_t> |
static Result< ValueType > | readPGM (const std::string &fileName, const bool useDuneGridOrdering=true) |
| Reads a *.pgm (grayscale) in ASCII or binary encoding. Returns a struct that contains both the pixel values and the header data. More...
|
|
static HeaderData | readHeader (std::ifstream &infile) |
| Returns the header data of the image file. More...
|
|
template<class T > |
static void | applyDuneGridOrdering (Result< T > &result) |
| Change the ordering of the pixels according to Dune's convention, shifting the origin from upper left to lower left. More...
|
|
template<class T > |
static void | printInfo (const Result< T > &result) |
| Print the data contained in the header. More...
|
|
template<class Image , class T > |
static void | fillImage (Image &image, const Result< T > &result) |
| Fill a pre-defined 2D image object, e.g. std::vector<std::vector<bool>>, with the pixel values stored in a 1D container. More...
|
|
template<class Image > |
static auto | flattenImageToVector (const Image &image) |
| Flattens a 2D image object to a 1D container. More...
|
|
◆ applyDuneGridOrdering()
template<class T >
static void Dumux::NetPBMReader::applyDuneGridOrdering |
( |
Result< T > & |
result | ) |
|
|
inlinestatic |
- Parameters
-
result | The image's pixel values ordered from top to bottom. |
◆ fillImage()
template<class Image , class T >
static void Dumux::NetPBMReader::fillImage |
( |
Image & |
image, |
|
|
const Result< T > & |
result |
|
) |
| |
|
inlinestatic |
- Parameters
-
image | The 2D image to be filled with values. Needs to have to correct dimensions (nCols x nRows). |
result | The image's pixel values stored in a 1D container. |
◆ flattenImageToVector()
template<class Image >
static auto Dumux::NetPBMReader::flattenImageToVector |
( |
const Image & |
image | ) |
|
|
inlinestatic |
- Parameters
-
image | The 2D image to be flattened. |
◆ getFormat()
static Format Dumux::NetPBMReader::getFormat |
( |
const std::vector< std::string_view > & |
firstLineTokes | ) |
|
|
inlinestatic |
- Parameters
-
firstLineTokes | The tokens extracted from the first line of the file |
◆ printInfo()
template<class T >
static void Dumux::NetPBMReader::printInfo |
( |
const Result< T > & |
result | ) |
|
|
inlinestatic |
- Parameters
-
result | The object storing both the image's pixel values and the header data. |
◆ readHeader()
static HeaderData Dumux::NetPBMReader::readHeader |
( |
std::ifstream & |
infile | ) |
|
|
inlinestatic |
- Parameters
-
infile | The input stream used to process the image file. |
◆ readPBM()
static Result< bool > Dumux::NetPBMReader::readPBM |
( |
const std::string & |
fileName, |
|
|
const bool |
useDuneGridOrdering = true |
|
) |
| |
|
inlinestatic |
- Parameters
-
fileName | The file name (*.pbm). |
useDuneGridOrdering | If set true, the ordering of the pixels will be changed according to Dune's convention, shifting the origin from upper left to lower left. |
◆ readPGM()
template<class ValueType = std::uint8_t>
static Result< ValueType > Dumux::NetPBMReader::readPGM |
( |
const std::string & |
fileName, |
|
|
const bool |
useDuneGridOrdering = true |
|
) |
| |
|
inlinestatic |
- Template Parameters
-
ValueType | The value type representing the pixel data. By default, std::uint8_t (0-255) is used. Since this type is often defined as unsigned char, some conversion issues during I/O may occur. Hence the type may be changed, e.g., to std::size_t. |
- Parameters
-
fileName | The file name (*.pbm). |
useDuneGridOrdering | If set true, the ordering of the pixels will be changed according to Dune's convention, shifting the origin from upper left to lower left. |
The documentation for this class was generated from the following file: