// basic image I/O, based on Pedro Felzenszwalb's code
#ifndef IMAGE_H
#define IMAGE_H
#include <cstdlib>
#include <climits>
#include <cstring>
#include <fstream>
// use imRef to access image data.获取图片数据
#define imRef(im, x, y) (im->access[y][x])
// use imPtr to get pointer to image data.获取图片数据指针
#define imPtr(im, x, y) &(im->access[y][x])
#define BUF_SIZE 256
typedef unsigned char uchar;
typedef struct { uchar r, g, b; } rgb;
inline bool operator==(const rgb &a, const rgb &b) {
return ((a.r == b.r) && (a.g == b.g) && (a.b == b.b));
}
// image class模板类 T可以用各种类型代替
template <class T> class image {
public:
// create image
image(const int width, const int height, const bool init = false);
// delete image
~image();
// init image
void init(const T &val);
// deep copy
image<T> *copy() const;
// get image width/he
elas算法源码赏析(一):PGM格式图片的读取和保存
最新推荐文章于 2020-07-28 19:29:36 发布
本文介绍了PGM格式图片的读取和保存,首先讲解了常用的头文件如cstdlib和climits的功能,接着详细阐述了PGM格式的结构,包括p5标识、宽度、高度和数据范围。最后提到了源码中的一些编程技巧,如条件编译、atoi函数的使用以及ofstream的二进制输出模式。
摘要由CSDN通过智能技术生成