38 #include <string_view>
39 #include <type_traits>
45 constexpr std::string_view
kPGMExt{
"pgm"};
46 constexpr std::string_view
kPPMExt{
"ppm"};
55 requires std::is_arithmetic_v<T>
60 explicit BpImage(
const std::array<unsigned int, 2>& width_height) :
66 const std::array<unsigned int, 2>& width_height,
67 const T* input_pixel_vals) :
77 explicit BpImage(
const std::string& file_name) {
89 T
PixelAtPoint(
const std::array<unsigned int, 2>& point_xy)
const {
109 std::ofstream file(filename, std::ios::out | std::ios::binary);
111 << UCHAR_MAX <<
"\n";
122 void pnm_read(std::ifstream &file, std::string& buf)
const;
125 const std::string& file_name,
127 bool weighted_rgb_conversion =
true)
const;
Class to define images that are used in bp processing.
unsigned int Height() const
std::array< unsigned int, 2 > width_height_
std::unique_ptr< T[]> pixels_
unsigned int TotalPixels() const
BpImage(const std::array< unsigned int, 2 > &width_height)
BpImage(const std::string &file_name)
T PixelAtPoint(unsigned int i) const
void SetPixelAtPoint(unsigned int i, T val)
const std::unique_ptr< T[]> & UniquePtrToPixelData() const
unsigned int Width() const
void SaveImageAsPgm(const std::string &filename) const
T PixelAtPoint(const std::array< unsigned int, 2 > &point_xy) const
void LoadImageAsGrayScale(const std::string &file_path_image)
void pnm_read(std::ifstream &file, std::string &buf) const
BpImage(const std::array< unsigned int, 2 > &width_height, const T *input_pixel_vals)
void SetPixelAtPoint(const std::array< unsigned int, 2 > &point_xy, T val)
T * PointerToPixelsStart() const
BpImage< unsigned char > ImageRead(const std::string &file_name, beliefprop::ImageType image_type, bool weighted_rgb_conversion=true) const
Namespace for enums, constants, structures, and functions specific to belief propagation processing.
constexpr std::string_view kPGMExt
constexpr bool kUseWeightedRGBToGrayscaleConversion
constexpr std::string_view kPPMExt