Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members

iminfo.cpp File Reference

#include <cstring>
#include "emdata.h"
#include "ctf.h"

Include dependency graph for iminfo.cpp:

Include dependency graph

Go to the source code of this file.

Functions

void usage (const char *progname)
int main (int argc, char *argv[])


Function Documentation

int main int  argc,
char *  argv[]
 

Definition at line 47 of file iminfo.cpp.

References EMAN::EMUtil::dump_dict(), EMAN::EMData::get_attr(), EMAN::EMData::get_attr_dict(), EMAN::EMData::get_ctf(), EMAN::EMUtil::get_image_count(), EMAN::EMUtil::get_image_type(), EMAN::EMUtil::get_imagetype_name(), EMAN::EMData::get_xsize(), EMAN::EMData::get_ysize(), EMAN::EMData::get_zsize(), EMAN::EMData::read_image(), EMAN::Util::set_log_level(), EMAN::Ctf::to_string(), and usage().

00048 {
00049     if (argc < 2) {
00050                 usage(argv[0]);
00051                 exit(1);
00052     }
00053 
00054     bool show_all_header = false;
00055     bool stat = false;
00056 
00057     Util::set_log_level(argc, argv);
00058     for (int i = 1; i < argc - 1; i++) {
00059                 if (strcmp(argv[i], "-H") == 0) {
00060                         show_all_header = true;
00061                 }
00062                 else if (strcmp(argv[i], "-stat") == 0) {
00063                         stat = true;
00064                 }
00065     }
00066 
00067     const char* imagefile = argv[argc-1];
00068     EMData* d = 0;
00069         try {
00070                 int nimg = EMUtil::get_image_count(imagefile);
00071         EMUtil::ImageType imgtype = EMUtil::get_image_type(imagefile);
00072                 const char* imgtypename = EMUtil::get_imagetype_name(imgtype);
00073                 int image_index = 0;
00074         if (imgtype == EMUtil::IMAGE_SPIDER && !stat) {
00075             image_index = -1;
00076         }
00077                 printf("\n%20s: %d\n", "Number of Images", nimg);
00078                 printf("%20s: %s\n", "Image Format", imgtypename);
00079 
00080                 d = new EMData();
00081 
00082                 if (!stat) {
00083                         d->read_image(imagefile, image_index, true);
00084                 }
00085                 else {
00086                         d->read_image(imagefile, image_index, false);
00087                 }
00088 
00089                 printf("%20s: %d x %d x %d\n", "Image Dimensions",
00090                            d->get_xsize(), d->get_ysize(), d->get_zsize());
00091 
00092                 printf("%20s: %s\n", "Image Data Type",
00093                                 EMUtil::get_datatype_string((EMUtil::EMDataType)((int)(d->get_attr("datatype")))));
00094 
00095                 if (stat) {
00096                         printf("mean=%1.3g sigma=%1.3g skewness=%1.3g kurtosis=%1.3g\n",
00097                                    (float) d->get_attr("mean"),
00098                                    (float) d->get_attr("sigma"),
00099                                    (float) d->get_attr("skewness"),
00100                                    (float) d->get_attr("kurtosis"));
00101                 }
00102 
00103                 Ctf* ctf = d->get_ctf();
00104                 if (ctf) {
00105                         printf("CTF: %s\n", ctf->to_string().c_str());
00106                         delete ctf;
00107                         ctf = 0;
00108                 }
00109 
00110                 if (show_all_header) {
00111                         Dict dict = d->get_attr_dict();
00112                         printf("\nDetailed Header Information:\n");
00113                         EMUtil::dump_dict(dict);
00114                 }
00115                 printf("\n");
00116 
00117 
00118 
00119         if( d )
00120         {
00121                         delete d;
00122                         d = 0;
00123         }
00124         }
00125         catch(E2Exception  & e) {
00126                 if (d) {
00127                         delete d;
00128                         d = 0;
00129                 }
00130                 printf("%s\n", e.what());
00131         }
00132 
00133 
00134         return 0;
00135 }

void usage const char *  progname  ) 
 

Definition at line 38 of file iminfo.cpp.

00039 {
00040     printf("\n%s [-H] [-vN] [-stat] <image file>\n", progname);
00041     printf("    -H: show all header information.\n");
00042     printf("   -vN: set verbosity level. N=0,1,2,3. large N means more verbose.\n");
00043     printf(" -stat: show statistical information about the image(s).\n");
00044     printf("\n");
00045 }


Generated on Tue Jun 11 13:41:10 2013 for EMAN2 by  doxygen 1.3.9.1