mrcImage in;
mrcImage out;
mrcImage label;
+ mrcImage density;
+ mrcImage densityWeightedArea;
lmrcImagePerimeterCalcInfo lperi;
mrcImage peri;
lmrcImageSurfaceAreaCalcInfo lsurface;
DEBUGPRINT("Program Start\n");
mrcFileRead(&in, info.In, "in main", 0);
+ if(info.flagInDensity) {
+ mrcFileRead(&density, info.InDensity, "in main", 0);
+ }
DEBUGPRINT("lmrcImageLabeling\n");
lmrcImageLabeling(&label, &in, info.neighbor, 1);
linfo.flagNumber = 0;
lmrcImageBasicFeatureCalc(&out, &linfo, &label, info.mode);
- if(info.flagOutPerimeter) {
+ if(info.flagOutPerimeter || info.flagOutChain) {
if(in.HeaderN.z<=1) {
lperi.flagArea=0;
switch(info.neighbor) {
mrcPixelHowNearest);
linfo.each[i].flagPerimeter = 1;
}
- mrcFileWrite(&peri, info.OutPerimeter, "in main", 0);
+ if(info.flagOutPerimeter) {
+ mrcFileWrite(&peri, info.OutPerimeter, "in main", 0);
+ }
+ if(info.flagOutChain) {
+ mrcFileWrite(lperi.ChainCode, info.OutChain, "in main", 0);
+ }
} else {
fprintf(stderr, "Not supported for 3D image\n");
}
if(info.flagOutLabel) {
mrcFileWrite(&label, info.OutLabel, "in main", 0);
}
+ if(info.flagOutDensityWeightedArea) {
+ mrcFileWrite(&densityWeightedArea, info.OutDensityWeightedArea, "in main", 0);
+ }
exit(EXIT_SUCCESS);
}