//////////////////////////////////////////////// //! rcsid="$Id: testImageProc.cc,v 1.1 1999/03/17 12:30:36 eep1af Exp $" #include "amma/Image/IPMorphErode.hh" #include "amma/Image/IPMorphDilate.hh" #include "amma/Image/IPMorphOpen.hh" #include "amma/Image/IPMorphClose.hh" #include "amma/Image/IPMorphGradient.hh" #include "amma/Image/IPMorphTopHat.hh" #include "amma/Image/IPNonLinMedian.hh" #include "amma/Image/IPBinCompare.hh" #include "amma/Image/IPLabel8Con.hh" #include "amma/Image/IPMoments.hh" #include "amma/Option.hh" #include "amma/ByteImag.hh" #include ByteImageC ApplyFilter (const IPFilterC &filt, const ByteImageC &image) { ByteImageC temp = image >> filt; temp.SaveAs ("/tmp/testIP.pgm"); system ("(xv /tmp/testIP.pgm; rm /tmp/testIP.pgm)&"); return temp; } ByteImageC ApplyBinFilter (const IPBinaryC &filt, const ByteImageC &image) { ByteImageC temp = image >> filt; temp.SaveAs ("/tmp/testbinIP.pgm"); system ("(xv /tmp/testbinIP.pgm; rm /tmp/testbinIP.pgm)&"); return temp; } ImageC ApplyLabelFilter (const IPLabelC &filt, const ByteImageC &image) { ImageC temp = image >> filt; ByteImageC temp2 (temp.Rectangle()); FOREACH_PIXEL (temp,pxl) temp2[pxl] = temp[pxl].AsUIntT(); temp2.SaveAs ("/tmp/testlabIP.pgm"); system ("(xv /tmp/testlabIP.pgm; rm /tmp/testlabIP.pgm)&"); return temp; } main (int argc, char *argv[]) { OptionC option (argc,argv,TRUE); FilenameC imageName = option.CharArr ("i",NULL,"Input image"); option.Compulsory ("i"); option.Check (); ByteImageC image (imageName); ByteImageC temp; IPMorphErodeC filt1 (IPMorphSElemFlatC (5,5)); ApplyFilter (filt1,image); IPMorphDilateC filt2 (IPMorphSElemFlatC (5,5)); ApplyFilter (filt2,image); IPMorphCloseC filt3 (IPMorphSElemFlatC (5,5)); ApplyFilter (filt3,image); IPMorphOpenC filt4 (IPMorphSElemFlatC (5,5)); ApplyFilter (filt4,image); IPMorphGradientC filt5 (IPMorphSElemFlatC (5,5)); ApplyFilter (filt5,image); IPMorphTopHatC filt6 (IPMorphSElemFlatC (5,5)); ByteImageC t1 = ApplyFilter (filt6,image); IPNonLinMedianC filt7 (IndexNeigh2dC (3,MAX_VALUE)); ByteImageC t2 = ApplyFilter (filt7,t1); IPBinCompareC filt8 (t2); ByteImageC t3 = ApplyBinFilter (filt8,t1); IPLabel8ConC filt9; ImageC t4 = ApplyLabelFilter (filt9,t3); NumDataSetC l = FindMoments (t4); }