Commit 9f489bb3a996315c4dd55998fa146a420b86e1fa
1 parent
bfe9c6db
Added load_mask and feature_matrix in envi class
Showing
1 changed file
with
5 additions
and
11 deletions
Show diff stats
envi/envi.h
@@ -587,29 +587,23 @@ public: | @@ -587,29 +587,23 @@ public: | ||
587 | } | 587 | } |
588 | return false; | 588 | return false; |
589 | } | 589 | } |
590 | - /* | 590 | + |
591 | //load mask from maskfile and save it into memory | 591 | //load mask from maskfile and save it into memory |
592 | bool load_mask(unsigned char * mask, std::string maskname){ | 592 | bool load_mask(unsigned char * mask, std::string maskname){ |
593 | //open the mask file | 593 | //open the mask file |
594 | - cimg_library::CImg<unsigned char> mask_image(maskname.c_str(),true); | 594 | + cimg_library::CImg<unsigned char> mask_image(maskname.c_str()); |
595 | //save mask file into memory | 595 | //save mask file into memory |
596 | - for (unsigned i = 0; i < header.lines * header.samples; i++) | ||
597 | - mask[i] = mask_image.at(i); //how to copy value from cimg class? | 596 | + memcpy(mask, mask_image.data(), mask_image.size()); |
598 | //close mask file | 597 | //close mask file |
599 | mask_image.clear(); | 598 | mask_image.clear(); |
600 | return true; | 599 | return true; |
601 | - }*/ | 600 | + } |
602 | 601 | ||
603 | //p:start positon; N: number of pixels saved in X; | 602 | //p:start positon; N: number of pixels saved in X; |
604 | - bool feature_matrix(void * X, std::string maskname, unsigned char * mask, unsigned start, unsigned N) | 603 | + bool feature_matrix(void * X, unsigned char * mask, unsigned start, unsigned N) |
605 | { | 604 | { |
606 | - cimg_library::CImg<unsigned char> mask_image(maskname.c_str()); | ||
607 | - //save mask file into memory | ||
608 | - mask = mask_image.data(); | ||
609 | //save pixels in X as floating numbers | 605 | //save pixels in X as floating numbers |
610 | float * p = (float *)malloc(header.bands * sizeof(float)); | 606 | float * p = (float *)malloc(header.bands * sizeof(float)); |
611 | - | ||
612 | - //use mask to save valid pixel in X | ||
613 | unsigned bandnum = header.samples * header.lines; //calculate pixel numbers in a band | 607 | unsigned bandnum = header.samples * header.lines; //calculate pixel numbers in a band |
614 | unsigned count = 0; //for counting use | 608 | unsigned count = 0; //for counting use |
615 | unsigned j = 0; //memory the pointer location in X | 609 | unsigned j = 0; //memory the pointer location in X |