Commit 7b3948ab3d5cfb28360a41d9d803ac31d71dff54
1 parent
fbf0ab02
added support for the image interface to envi
Showing
2 changed files
with
29 additions
and
7 deletions
Show diff stats
envi/envi.h
@@ -6,7 +6,7 @@ | @@ -6,7 +6,7 @@ | ||
6 | #include "../envi/bip.h" | 6 | #include "../envi/bip.h" |
7 | #include "../envi/bil.h" | 7 | #include "../envi/bil.h" |
8 | #include <iostream> | 8 | #include <iostream> |
9 | -//#include "../image/CImg.h" | 9 | +#include "../image/image.h" |
10 | 10 | ||
11 | namespace stim{ | 11 | namespace stim{ |
12 | 12 | ||
@@ -641,10 +641,10 @@ public: | @@ -641,10 +641,10 @@ public: | ||
641 | //load mask from maskfile and save it into memory | 641 | //load mask from maskfile and save it into memory |
642 | bool load_mask(unsigned char * mask, std::string maskname){ | 642 | bool load_mask(unsigned char * mask, std::string maskname){ |
643 | //open the mask file | 643 | //open the mask file |
644 | - cimg_library::CImg<unsigned char> mask_image(maskname.c_str()); | 644 | + stim::image<unsigned char> mask_image(maskname); |
645 | //save mask file into memory | 645 | //save mask file into memory |
646 | memcpy(mask, mask_image.data(), mask_image.size()); | 646 | memcpy(mask, mask_image.data(), mask_image.size()); |
647 | - mask_image.clear(); | 647 | + //mask_image.clear(); |
648 | return true; | 648 | return true; |
649 | } | 649 | } |
650 | 650 |
image/image.h
@@ -4,6 +4,8 @@ | @@ -4,6 +4,8 @@ | ||
4 | #include "CImg.h" | 4 | #include "CImg.h" |
5 | 5 | ||
6 | #include <iostream> | 6 | #include <iostream> |
7 | + | ||
8 | +namespace stim{ | ||
7 | //This static class provides the STIM interface for loading images | 9 | //This static class provides the STIM interface for loading images |
8 | // Use this interface for all image management - that way the actual library can be changed without problems | 10 | // Use this interface for all image management - that way the actual library can be changed without problems |
9 | 11 | ||
@@ -12,18 +14,27 @@ | @@ -12,18 +14,27 @@ | ||
12 | template <class T> | 14 | template <class T> |
13 | class image{ | 15 | class image{ |
14 | 16 | ||
15 | - cimg_library::CImg<T> data; | 17 | + cimg_library::CImg<T> img; |
16 | 18 | ||
17 | public: | 19 | public: |
18 | 20 | ||
21 | + //default constructor | ||
22 | + image(){ | ||
23 | + } | ||
24 | + | ||
25 | + //constructor (load an image file) | ||
26 | + image(std::string filename){ | ||
27 | + img.load(filename.c_str()); | ||
28 | + } | ||
29 | + | ||
19 | //Load an image from a file | 30 | //Load an image from a file |
20 | void load(std::string filename){ | 31 | void load(std::string filename){ |
21 | - data.load(filename.c_str()); | 32 | + img.load(filename.c_str()); |
22 | } | 33 | } |
23 | 34 | ||
24 | //save a file | 35 | //save a file |
25 | void save(std::string filename){ | 36 | void save(std::string filename){ |
26 | - data.save(filename.c_str()); | 37 | + img.save(filename.c_str()); |
27 | } | 38 | } |
28 | 39 | ||
29 | //create an image from an interlaced buffer | 40 | //create an image from an interlaced buffer |
@@ -38,8 +49,17 @@ public: | @@ -38,8 +49,17 @@ public: | ||
38 | } | 49 | } |
39 | } | 50 | } |
40 | 51 | ||
41 | - data = cimg_library::CImg<unsigned char>(non_interleaved, width, height, 1, channels); | 52 | + img = cimg_library::CImg<unsigned char>(non_interleaved, width, height, 1, channels); |
53 | + } | ||
54 | + | ||
55 | + //returns a pointer to the first pixel of the image data | ||
56 | + T* data(){ | ||
57 | + return img.data(); | ||
58 | + } | ||
42 | 59 | ||
60 | + //returns the size (number of values) of the image | ||
61 | + unsigned long size(){ | ||
62 | + return img.size(); | ||
43 | } | 63 | } |
44 | 64 | ||
45 | 65 | ||
@@ -48,5 +68,7 @@ public: | @@ -48,5 +68,7 @@ public: | ||
48 | 68 | ||
49 | }; | 69 | }; |
50 | 70 | ||
71 | +}; //end namespace stim | ||
72 | + | ||
51 | 73 | ||
52 | #endif | 74 | #endif |