⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 image.h

📁 基于图匹配理论的图像分割
💻 H
字号:
/* a simple image class */#ifndef IMAGE_H#define IMAGE_H#include <cstring>template <class T>class image { public:  /* create an image */  image(const int width, const int height, const bool init = true);  /* delete an image */  ~image();  /* init an image */  void init(const T &val);  /* copy an image */  image<T> *copy() const;    /* get the width of an image. */  int width() const { return w; }    /* get the height of an image. */  int height() const { return h; }    /* image data. */  T *data;    /* row pointers. */  T **access;   private:  int w, h;};/* 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])template <class T>image<T>::image(const int width, const int height, const bool init) {  w = width;  h = height;  data = new T[w * h];  // allocate space for image data  access = new T*[h];   // allocate space for row pointers    // initialize row pointers  for (int i = 0; i < h; i++)    access[i] = data + (i * w);      if (init)    memset(data, 0, w * h * sizeof(T));}template <class T>image<T>::~image() {  delete [] data;   delete [] access;}template <class T>void image<T>::init(const T &val) {  T *ptr = imPtr(this, 0, 0);  T *end = imPtr(this, w-1, h-1);  while (ptr <= end)    *ptr++ = val;}template <class T>image<T> *image<T>::copy() const {  image<T> *im = new image<T>(w, h, false);  memcpy(im->data, data, w * h * sizeof(T));  return im;}#endif  

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -