/home/oan/prosjekt/gotools/segmentation/gpl_distro/lsseg_1.0_gpl/app/structureTensorComputation.C

Go to the documentation of this file.
00001 //===========================================================================
00002 // The Level-Set Segmentation Library (LSSEG)
00003 //
00004 //
00005 // Copyright (C) 2000-2005 SINTEF ICT, Applied Mathematics, Norway.
00006 //
00007 // This program is free software; you can redistribute it and/or          
00008 // modify it under the terms of the GNU General Public License            
00009 // as published by the Free Software Foundation version 2 of the License. 
00010 //
00011 // This program is distributed in the hope that it will be useful,        
00012 // but WITHOUT ANY WARRANTY; without even the implied warranty of         
00013 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the          
00014 // GNU General Public License for more details.                           
00015 //
00016 // You should have received a copy of the GNU General Public License      
00017 // along with this program; if not, write to the Free Software            
00018 // Foundation, Inc.,                                                      
00019 // 59 Temple Place - Suite 330,                                           
00020 // Boston, MA  02111-1307, USA.                                           
00021 //
00022 // Contact information: e-mail: tor.dokken@sintef.no                      
00023 // SINTEF ICT, Department of Applied Mathematics,                         
00024 // P.O. Box 124 Blindern,                                                 
00025 // 0314 Oslo, Norway.                                                     
00026 // 
00027 //
00028 // Other licenses are also available for this software, notably licenses
00029 // for:
00030 // - Building commercial software.                                        
00031 // - Building software whose source code you wish to keep private.        
00032 //
00033 //===========================================================================
00034 #include <time.h>
00035 #include <iostream>
00036 #include "Image.h"
00037 #include "Filters.h"
00038 #include "cimg_dependent.h"
00039 
00040 
00041 using namespace lsseg;
00042 using namespace std;
00043 
00044 //mconst char filename[] = "data/zebra.jpg";
00045 
00046 int main(int varnum, char** vararg)
00047 {
00048     if (varnum < 2) {
00049         cerr << endl;
00050         cerr << "This program takes as input an image, and computes and display its structure tensor. " << endl;
00051         cerr << "First, the original image will be displayed.  Then, a color image will be shown, where " << endl;
00052         cerr << "the RGB values represent the three different components of the structure tensor.  Then, " << endl;
00053         cerr << "each channel will be shown separately." << endl;
00054         cerr << endl;
00055         cerr << "Usage: structureTensorComputation <image filename> " << endl;
00056         cerr << endl;
00057         return -1;
00058     }
00059 
00060     const char* filename = vararg[1];
00061 
00062     Image<double> img;
00063     load_image(filename, img);
00064     display_image(img);
00065     Image<double> G;
00066     cout << "Entering compute_structure_tensor_2D" << endl;
00067     clock_t start = clock();
00068     compute_structure_tensor_2D(img, G);
00069     clock_t end = clock();
00070     cout << "Exited from compute_structure_tensor_2D" << endl;
00071     cout << "Computation took: " << (end - start) / double(1000) << " ms." << endl;
00072     display_image(G);
00073     Image<double> G_ch;
00074     for (int ch = 0; ch < G.numChannels(); ++ch) {
00075         G.makeChannelImage(G_ch, ch);
00076         display_image(G_ch);
00077     }
00078 };
00079 

Generated on Tue Nov 28 18:35:47 2006 for lsseg by  doxygen 1.4.7