--- /dev/null
+../sbin/MachineIndependent
\ No newline at end of file
#
*/
+#ifndef __LMRC_IMAGE_CALC_AREA_H
+#define __LMRC_IMAGE_CALC_AREA_H
+
#include "mrcImage.h"
void lmrcImageCalcArea(mrcImage* area, mrcImage* label, mrcImage* in, int neighbor, int mode);
+
+void lmrcImageCalcDensityWeightedArea(mrcImage* densityWeightedArea, mrcImage* label, mrcImage* in, mrcImage* inDensity, int neighbor, int mode);
+
+
+#endif // __LMRC_IMAGE_CALC_AREA_H
long nx;
long ny;
long nz;
+ float ax;
+ float ay;
+ float az;
+ float bx;
+ float by;
+ float bz;
+ float cx;
+ float cy;
+ float cz;
+ float sx;
+ float sy;
+ float sz;
+ long pixelMode;
} lmrcImageCrystalCreateInfo;
/* struct end */
extern void lmrcImageSurfaceAreaCalcPrint(FILE* fpt, lmrcImageSurfaceAreaCalcInfo linfo, int mode);
extern void lmrcImageSurfaceAreaCalcUsage(FILE* fpt);
-
extern void lmrcImageCircularityCalc(lmrcImageFeatureList* linfo, int mode);
extern void lmrcImageComplexityCalc(lmrcImageFeatureList* linfo, int mode);
extern void lmrcImageRadiusCalc(lmrcImageFeatureList* linfo, int mode);
lmrcImageNormalizingModeUsingContour=2,
lmrcImageNormalizingModeUsingContourWithSolventFlattening=3,
lmrcImageNormalizingModeNoEstimation=4,
- lmrcImageNormalizingModeAssumeGaussian=5
+ lmrcImageNormalizingModeAssumeGaussian=5,
+ lmrcImageNormalizingModeMin75percent=6
} lmrcImageNormalizingMode ;
typedef struct lmrcImageNormalizingInfo {
--- /dev/null
+/*
+# %M% %Y% %I%
+# The latest update : %G% at %U%
+#
+#%Z% lmrcImageCrystalCreate ver %I%
+#%Z% Created by
+#%Z%
+#%Z% Usage : lmrcImageCrystalCreate
+#%Z% Attention
+#%Z%
+*/
+#define DEBUG
+#include "genUtil.h"
+#include "lmrcImageCrystalCreate.h"
+
+
+void
+lmrcImageCrystalCreate(mrcImage* out, mrcImage* in, lmrcImageCrystalCreateInfo* info)
+{
+ mrcImageParaTypeReal x, y, z;
+ mrcImageParaTypeReal orgx, orgy, orgz;
+ mrcImageParaTypeReal realx, realy, realz;
+ mrcImageParaTypeReal ix, iy, iz;
+ mrcImageParaTypeReal da, db, dc;
+ mrcImageParaTypeReal orgda, orgdb, orgdc;
+ mrcImageParaTypeReal La, Lb, Lc;
+ int flagInCrystal;
+ double data;
+
+ DEBUGPRINT("start lmrcImageCrystalCreate\n");
+ out->Header = in->Header;
+ /*
+ out->HeaderN.x *= info->nx;
+ out->HeaderN.y *= info->ny;
+ out->HeaderN.z *= info->nz;
+ */
+ DEBUGPRINT3("A: %f %f %f\n", info->ax, info->ay, info->az);
+ DEBUGPRINT3("B: %f %f %f\n", info->bx, info->by, info->bz);
+ DEBUGPRINT3("C: %f %f %f\n", info->cx, info->cy, info->cz);
+ DEBUGPRINT3("N: %ld %ld %ld\n", info->nx, info->ny, info->nz);
+ out->HeaderN.x = (int)((info->nx*info->ax + info->ny*info->bx + info->nz*info->cx)/out->HeaderLength.x+0.5);
+ out->HeaderN.y = (int)((info->nx*info->ay + info->ny*info->by + info->nz*info->cy)/out->HeaderLength.y+0.5);
+ out->HeaderN.z = (int)((info->nx*info->az + info->ny*info->bz + info->nz*info->cz)/out->HeaderLength.z+0.5);
+ DEBUGPRINT3("inN: %d %d %d\n", in->HeaderN.x, in->HeaderN.y, in->HeaderN.z);
+ DEBUGPRINT3("outN: %d %d %d\n", out->HeaderN.x, out->HeaderN.y, out->HeaderN.z);
+
+ mrcInit(out, NULL);
+
+ La = SQR(info->ax) + SQR(info->ay) + SQR(info->az); if(0<La) { La = sqrt(La); } else { La = 0;}
+ Lb = SQR(info->bx) + SQR(info->by) + SQR(info->bz); if(0<Lb) { Lb = sqrt(Lb); } else { Lb = 0;}
+ Lc = SQR(info->cx) + SQR(info->cy) + SQR(info->cz); if(0<Lc) { Lc = sqrt(Lc); } else { Lc = 0;}
+
+ DEBUGPRINT3("L: %f %f %f\n", La, Lb, Lc);
+
+ for(z=0; z<out->HeaderN.z; z++) {
+ for(y=0; y<out->HeaderN.y; y++) {
+ for(x=0; x<out->HeaderN.x; x++) {
+ realx = (x+in->HeaderStartN.x)*in->HeaderLength.x - info->sx;
+ realy = (y+in->HeaderStartN.y)*in->HeaderLength.y - info->sy;
+ realz = (z+in->HeaderStartN.z)*in->HeaderLength.z - info->sz;
+ da = (realx*info->ax + realy*info->ay + realz*info->az)/La;
+ db = (realx*info->bx + realy*info->by + realz*info->bz)/Lb;
+ dc = (realx*info->cx + realy*info->cy + realz*info->cz)/Lc;
+ //DEBUGPRINT3("d: %f %f %f\n", da, db, dc);
+ DEBUGPRINT6("d: %f %f %f at %f %f %f\n", da, db, dc, realx, realy, realz);
+ if(0<=da && da<=info->nx
+ &&0<=db && db<=info->ny
+ &&0<=dc && dc<=info->nz) {
+ flagInCrystal = 1;
+ } else {
+ flagInCrystal = 0;
+ }
+ if(flagInCrystal) { // in cyrstal
+ orgda = da - (int)da;
+ orgdb = db - (int)db;
+ orgdc = dc - (int)dc;
+
+ orgx = (orgda*info->ax + orgdb*info->bx + orgdc*info->cx)/in->HeaderLength.x - in->HeaderStartN.x;
+ orgy = (orgda*info->ay + orgdb*info->by + orgdc*info->cy)/in->HeaderLength.y - in->HeaderStartN.y;
+ orgz = (orgda*info->az + orgdb*info->bz + orgdc*info->cz)/in->HeaderLength.z - in->HeaderStartN.z;
+
+ mrcPixelDataGet(in, orgx, orgy, orgz, &data, mrcPixelRePart, info->pixelMode);
+ mrcPixelDataSet(out, x, y, z, data, mrcPixelRePart);
+ /*
+ for(ix=0; ix<info->nx; ix++) {
+ for(iy=0; iy<info->ny; iy++) {
+ for(iz=0; iz<info->nz; iz++) {
+ mrcPixelDataSet(out, ix*in->HeaderN.x+x,
+ iy*in->HeaderN.y+y,
+ iz*in->HeaderN.z+z,
+ data, mrcPixelRePart);
+ }
+ }
+ }
+ */
+ }
+ }
+ }
+ }
+}
#undef DEBUG
#include "genUtil.h"
#include "Memory.h"
+#include "./lmrcImageDensity.h"
#include "./lmrcImageLabeling.h"
#include "./lmrcImageCalcArea.h"
mrcStatDataSet(area, 0);
}
+
+void
+lmrcImageCalcDensityWeightedArea(mrcImage* area, mrcImage* label, mrcImage* in, mrcImage* inDensity, int neighbor, int mode)
+{
+ mrcImageParaTypeReal x, y, z;
+ double data, data0, data1;
+ int maxLabel, i, inde;
+ double* sum;
+ int total;
+ lmrcImageDensityInfoInfo linfo;
+
+ DEBUGPRINT("lmrcImageCalcArea Start\n");
+ lmrcImageLabeling(label, in, neighbor, 0);
+ mrcStatDataSet(label, 0);
+
+ maxLabel = (int)(label->HeaderAMax+0.5);
+ sum = (double*)memoryAllocate(sizeof(double)*(maxLabel+1), "in lmrcImageCalcArea");
+
+ for(i=0; i<maxLabel+1; i++) {
+ sum[i] = 0;
+ }
+ for(x=0; x<label->HeaderN.x; x++) {
+ for(y=0; y<label->HeaderN.y; y++) {
+ for(z=0; z<label->HeaderN.z; z++) {
+ mrcPixelDataGet(label, x, y, z, &data, mrcPixelRePart, mrcPixelHowNearest);
+ mrcPixelDataGet(inDensity, x, y, z, &data1, mrcPixelRePart, mrcPixelHowNearest);
+ i = (int)(data+0.5);
+ sum[i]+=data1;
+ }
+ }
+ }
+
+ area->Header = in->Header;
+ mrcInit(area, NULL);
+
+ for(x=0; x<area->HeaderN.x; x++) {
+ for(y=0; y<area->HeaderN.y; y++) {
+ for(z=0; z<area->HeaderN.z; z++) {
+ mrcPixelDataGet(label, x, y, z, &data, mrcPixelRePart, mrcPixelHowNearest);
+ if(fabs(data)<1e-6) {
+ mrcPixelDataSet(area, x, y, z, 0, mrcPixelRePart);
+ } else {
+ mrcPixelDataSet(area, x, y, z, sum[(int)(data+0.5)], mrcPixelRePart);
+ }
+ }
+ }
+ }
+
+ linfo.deltaVolume = 0.25;
+ lmrcImageDensityInfo(&linfo, area, mrcImageDensityInfoPercentageVolume);
+
+ switch(mode) {
+ case 0:
+ break;
+ case 1: // 75%
+ for(x=0; x<area->HeaderN.x; x++) {
+ for(y=0; y<area->HeaderN.y; y++) {
+ for(z=0; z<area->HeaderN.z; z++) {
+ mrcPixelDataGet(label, x, y, z, &data, mrcPixelRePart, mrcPixelHowNearest);
+ mrcPixelDataGet(area, x, y, z, &data1, mrcPixelRePart, mrcPixelHowNearest);
+ if(fabs(data)<1e-6) {
+ mrcPixelDataSet(area, x, y, z, 0, mrcPixelRePart);
+ } else {
+ data0 = data1/linfo.percentageVolume.data[1]*0.75;
+ mrcPixelDataSet(area, x, y, z, data0, mrcPixelRePart);
+ }
+ }
+ }
+ }
+ break;
+ default: {
+ fprintf(stderr, "Not supported mode in lmrcImageCalcDensityWeightedArea: %d\n", mode);
+ exit(EXIT_FAILURE);
+ break;
+ }
+ }
+ mrcStatDataSet(area, 0);
+}
+
+
#
*/
+#ifndef __LMRC_IMAGE_CALC_AREA_H
+#define __LMRC_IMAGE_CALC_AREA_H
+
#include "mrcImage.h"
void lmrcImageCalcArea(mrcImage* area, mrcImage* label, mrcImage* in, int neighbor, int mode);
+
+void lmrcImageCalcDensityWeightedArea(mrcImage* densityWeightedArea, mrcImage* label, mrcImage* in, mrcImage* inDensity, int neighbor, int mode);
+
+
+#endif // __LMRC_IMAGE_CALC_AREA_H
#%Z% Attention
#%Z%
*/
-
+#undef DEBUG
+#include "genUtil.h"
#include "lmrcImageCrystalCreate.h"
lmrcImageCrystalCreate(mrcImage* out, mrcImage* in, lmrcImageCrystalCreateInfo* info)
{
mrcImageParaTypeReal x, y, z;
+ mrcImageParaTypeReal orgx, orgy, orgz;
+ mrcImageParaTypeReal realx, realy, realz;
mrcImageParaTypeReal ix, iy, iz;
+ mrcImageParaTypeReal da, db, dc;
+ mrcImageParaTypeReal orgda, orgdb, orgdc;
+ mrcImageParaTypeReal La, Lb, Lc;
+ double det, Ax, Ay, Az, Bx, By, Bz, Cx, Cy, Cz;
+
+ int flagInCrystal;
double data;
+ DEBUGPRINT("start lmrcImageCrystalCreate\n");
out->Header = in->Header;
+ /*
out->HeaderN.x *= info->nx;
out->HeaderN.y *= info->ny;
out->HeaderN.z *= info->nz;
+ */
+ DEBUGPRINT3("A: %f %f %f\n", info->ax, info->ay, info->az);
+ DEBUGPRINT3("B: %f %f %f\n", info->bx, info->by, info->bz);
+ DEBUGPRINT3("C: %f %f %f\n", info->cx, info->cy, info->cz);
+ DEBUGPRINT3("N: %ld %ld %ld\n", info->nx, info->ny, info->nz);
+ out->HeaderN.x = (int)((info->nx*info->ax + info->ny*info->bx + info->nz*info->cx)/out->HeaderLength.x+0.5);
+ out->HeaderN.y = (int)((info->nx*info->ay + info->ny*info->by + info->nz*info->cy)/out->HeaderLength.y+0.5);
+ out->HeaderN.z = (int)((info->nx*info->az + info->ny*info->bz + info->nz*info->cz)/out->HeaderLength.z+0.5);
+ DEBUGPRINT3("inN: %d %d %d\n", in->HeaderN.x, in->HeaderN.y, in->HeaderN.z);
+ DEBUGPRINT3("outN: %d %d %d\n", out->HeaderN.x, out->HeaderN.y, out->HeaderN.z);
+
mrcInit(out, NULL);
- for(x=0; x<in->HeaderN.x; x++) {
- for(y=0; y<in->HeaderN.y; y++) {
- for(z=0; z<in->HeaderN.z; z++) {
- mrcPixelDataGet(in, x, y, z, &data, mrcPixelRePart, mrcPixelHowNearest);
+ La = SQR(info->ax) + SQR(info->ay) + SQR(info->az); if(0<La) { La = sqrt(La); } else { La = 0;}
+ Lb = SQR(info->bx) + SQR(info->by) + SQR(info->bz); if(0<Lb) { Lb = sqrt(Lb); } else { Lb = 0;}
+ Lc = SQR(info->cx) + SQR(info->cy) + SQR(info->cz); if(0<Lc) { Lc = sqrt(Lc); } else { Lc = 0;}
+
+ det = info->ax*info->by*info->cz
+ +info->bx*info->cy*info->az
+ +info->cx*info->ay*info->bz
+ -info->cx*info->by*info->az
+ -info->bx*info->ay*info->cz
+ -info->ax*info->cy*info->bz;
+ if(fabs(det)==0) {
+ fprintf(stderr, "Two of a, b, c are parallel. Please check\n");
+ exit(EXIT_FAILURE);
+ } else {
+ DEBUGPRINT1("Det of A, B, C: %f\n", det);
+ }
+ Ax = (info->by*info->cz - info->cy*info->bz)/det;
+ Ay = -(info->bx*info->cz - info->cx*info->bz)/det;
+ Az = (info->bx*info->cy - info->cx*info->by)/det;
+ Bx = -(info->ay*info->cz - info->cy*info->az)/det;
+ By = (info->ax*info->cz - info->cx*info->az)/det;
+ Bz = -(info->ax*info->cy - info->cx*info->ay)/det;
+ Cx = (info->ay*info->bz - info->by*info->az)/det;
+ Cy = -(info->ax*info->bz - info->bx*info->az)/det;
+ Cz = (info->ax*info->by - info->bx*info->ay)/det;
+
+ DEBUGPRINT3("A-1: %f %f %f\n", Ax, Ay, Az);
+ DEBUGPRINT3("B-1: %f %f %f\n", Bx, By, Bz);
+ DEBUGPRINT3("C-1: %f %f %f\n", Cx, Cy, Cz);
+ DEBUGPRINT3("L: %f %f %f\n", La, Lb, Lc);
+
+ for(z=0; z<out->HeaderN.z; z++) {
+ for(y=0; y<out->HeaderN.y; y++) {
+ for(x=0; x<out->HeaderN.x; x++) {
+ realx = (x+out->HeaderStartN.x)*in->HeaderLength.x - info->sx;
+ realy = (y+out->HeaderStartN.y)*in->HeaderLength.y - info->sy;
+ realz = (z+out->HeaderStartN.z)*in->HeaderLength.z - info->sz;
+
+
+ da = Ax*realx + Ay*realy + Az*realz;
+ db = Bx*realx + By*realy + Bz*realz;
+ dc = Cx*realx + Cy*realy + Cz*realz;
+ //DEBUGPRINT3("d: %f %f %f\n", da, db, dc);
+ DEBUGPRINT6("d: %f %f %f at %f %f %f\n", da, db, dc, realx, realy, realz);
+
+ /*
+ if(0<=da && da<info->nx
+ &&0<=db && db<info->ny
+ &&0<=dc && dc<info->nz) {
+ flagInCrystal = 1;
+ } else {
+ flagInCrystal = 0;
+ }
+ */
+ flagInCrystal = 1;
+
+ if(flagInCrystal) { // in cyrstal
+ orgda = da - floor(da);
+ orgdb = db - floor(db);
+ orgdc = dc - floor(dc);
+
+ orgx = (orgda*info->ax + orgdb*info->bx + orgdc*info->cx)/in->HeaderLength.x - in->HeaderStartN.x;
+ orgy = (orgda*info->ay + orgdb*info->by + orgdc*info->cy)/in->HeaderLength.y - in->HeaderStartN.y;
+ orgz = (orgda*info->az + orgdb*info->bz + orgdc*info->cz)/in->HeaderLength.z - in->HeaderStartN.z;
+ DEBUGPRINT6("org: %f %f %f at %f %f %f\n", orgda, orgdb, orgdc, orgx, orgy, orgz);
+
+ mrcPixelDataGet(in, orgx, orgy, orgz, &data, mrcPixelRePart, info->pixelMode);
+ mrcPixelDataSet(out, x, y, z, data, mrcPixelRePart);
+ /*
for(ix=0; ix<info->nx; ix++) {
- for(iy=0; iy<info->ny; iy++) {
- for(iz=0; iz<info->nz; iz++) {
- mrcPixelDataSet(out, ix*in->HeaderN.x+x,
+ for(iy=0; iy<info->ny; iy++) {
+ for(iz=0; iz<info->nz; iz++) {
+ mrcPixelDataSet(out, ix*in->HeaderN.x+x,
iy*in->HeaderN.y+y,
iz*in->HeaderN.z+z,
data, mrcPixelRePart);
- }
- }
}
- }
- }
+ }
+ }
+ */
+ }
+ }
+ }
}
}
long nx;
long ny;
long nz;
+ float ax;
+ float ay;
+ float az;
+ float bx;
+ float by;
+ float bz;
+ float cx;
+ float cy;
+ float cz;
+ float sx;
+ float sy;
+ float sz;
+ long pixelMode;
} lmrcImageCrystalCreateInfo;
/* struct end */
*/
static char __sccs_id[] = "%Z%lmrcImageFeatureCalc ver%I%; Date:%D% %Z%";
-#undef DEBUG
+#define DEBUG
#include "genUtil.h"
#include "Memory.h"
#include "./lmrcImageFeatureCalc.h"
{
int x, y, z;
int x1, y1, z1;
- int flag, flagIn, chainCode, chainCodeStart, startChainCode, flagStart, absChainCode;
+ int flag, flagIn, chainCode, chainCodeStart, startChainCode, previousChainCode, flagStart, absChainCode;
double data0;
double data1;
double data2;
double data3;
mrcImage* area;
- mrcImage* label;
+ mrcImage* label;
mrcImage* chain;
- double L, dL;
+ double L, dL, labelID, chainID;
mrcImageParaTypeRealCoord ori, next;
+ int errorFlag = 0;
DEBUGPRINT1("lmrcImagePerimeterCalc Start mode : %d\n", mode);
out->Header = in->Header;
for(y=0; y<in->HeaderN.y; y++) {
for(x=0; x<in->HeaderN.x; x++) {
mrcPixelDataSet(out, x, y, 0, -1, mrcPixelRePart);
- mrcPixelDataSet(chain, x, y, 0, -1, mrcPixelRePart);
+ mrcPixelDataSet(chain, x, y, 0, -2, mrcPixelRePart);
}
}
for(y=0; y<in->HeaderN.y; y++) {
for(x=0; x<in->HeaderN.x; x++) {
DEBUGPRINT2("Loop: %d %d\n", x, y);
mrcPixelDataGet(area, x, y, 0, &data0, mrcPixelRePart, mrcPixelHowNearest);
+ mrcPixelDataGet(chain, x, y, 0, &chainID, mrcPixelRePart, mrcPixelHowNearest);
+ mrcPixelDataGet(label, x, y, 0, &labelID, mrcPixelRePart, mrcPixelHowNearest);
+ if(0<labelID && -2==chainID) {
if(1<data0) { // in Area
+ if(((int)labelID/10)*10 == labelID) {
+ fprintf(stderr, "%f/%f\n", labelID, label->HeaderAMax);
+ }
switch(mode) { // Edge or Not
case 0:
case 2: // 8-neighbor
break;
}
if(flag) { // Edge
- mrcPixelDataGet(chain, x, y, 0, &data1, mrcPixelRePart, mrcPixelHowNearest);
- if(0<=data1) { // Already Calc
+ mrcPixelDataGet(chain, x, y, 0, &chainID, mrcPixelRePart, mrcPixelHowNearest);
+ if(0<=chainID) { // Already Calc
// Skip;
} else { // First Calc
flag = 1;
- chainCodeStart = 0;
+ chainCodeStart = 0; // First Search from right because bottom left is the origin and first scan direction is x-axis whereas the next is y
ori.x = x;
ori.y = y;
ori.z = 0;
break;
}
case 2:
- case 3: { // Relative
+ case 3: { // If relative, startChainCode must be absolute.
startChainCode = (startChainCode + chainCodeStart)%8;
break;
}
L = 0;
while(flag) { // Loop
flagIn = lmrcImageChainCodeSearch(&chainCode, &next, &dL, in, ori, chainCodeStart, mode);
- if(flagIn<0) { // No Edge: Single Point
- DEBUGPRINT2("Single Points: %f %f\n", ori.x, ori.y);
+ if(flagIn<0) { // No Edge, i.e., Single Point
+ //DEBUGPRINT2("Single Points: %f %f\n", ori.x, ori.y);
L = 0;
mrcPixelDataSet(chain, x, y, 0, -1, mrcPixelRePart); // No chainCode
mrcPixelDataSet(out, x, y, 0, 0, mrcPixelRePart); // Length
- flag = 0;
- } else { // Edge
+ flag = 0; // End
+ errorFlag = -1;
+ } else { // If Edge
switch(mode) {
case 0:
case 1: { // Absolute
}
if(ori.x==x && ori.y == y && absChainCode == startChainCode) { // Start or End
- if(flagStart) { // Start
- DEBUGPRINT4("Start Points: %f %f %d %d\n", ori.x, ori.y, chainCode, absChainCode);
+ // start position (x,y), ori is a current position, the same direction
+ if(flagStart) { // If Start point,
+ //DEBUGPRINT4("Start Points: %f %f %d %d\n", ori.x, ori.y, chainCode, absChainCode);
flagStart = 0;
- } else { // End
- DEBUGPRINT4("End Points: %f %f %d %d\n", ori.x, ori.y, chainCode, absChainCode);
- flag = 0;
+ } else { // If End point,
+ //DEBUGPRINT4("End Points: %f %f %d %d\n", ori.x, ori.y, chainCode, absChainCode);
+ errorFlag = 1;
+ flag = 0;
}
- mrcPixelDataSet(chain, x, y, 0, chainCode, mrcPixelRePart);
- } else { // Connect
- // On the way
- DEBUGPRINT6("On the way Points: %f %f chain %d start %d %d chain %d\n", ori.x, ori.y, chainCode, x, y, startChainCode);
- DEBUGPRINT5("Next Points: %f %f L: %f abs: %d <- %d\n", next.x, next.y, L, absChainCode, chainCode);
- mrcPixelDataSet(chain, ori.x, ori.y, 0, chainCode, mrcPixelRePart);
- mrcPixelDataSet(out, ori.x, ori.y, 0, -1, mrcPixelRePart);
+ mrcPixelDataSet(chain, x, y, 0, chainCode, mrcPixelRePart); // Chain Code Set
+ } else { // Connection
+ // On the way,
+ //DEBUGPRINT6("On the way Points: %f %f chain %d start %d %d chain %d\n", ori.x, ori.y, chainCode, x, y, startChainCode);
+ //DEBUGPRINT5("Next Points: %f %f L: %f abs: %d <- %d\n", next.x, next.y, L, absChainCode, chainCode);
+ mrcPixelDataGet(chain, ori.x, ori.y, 0, &chainID, mrcPixelRePart, mrcPixelHowNearest);
+ if(0<=chainID) { // Allready traced, looped perimeters
+ flag = 0;
+ errorFlag = -1;
+ } else {
+ mrcPixelDataSet(chain, ori.x, ori.y, 0, chainCode, mrcPixelRePart);
+ mrcPixelDataSet(out, ori.x, ori.y, 0, -1, mrcPixelRePart);
+ }
}
L+=dL;
- mrcPixelDataSet(out, x, y, 0, L, mrcPixelRePart);
+ mrcPixelDataSet(out, x, y, 0, errorFlag*L, mrcPixelRePart);
}
ori = next;
- chainCodeStart = (absChainCode-_SEARCH_DIRECTION+8)%8;
+ chainCodeStart = (absChainCode-_SEARCH_DIRECTION+8)%8; // Next search
}
}
} else { // Inside
mrcPixelDataSet(out, x, y, 0, -1, mrcPixelRePart);
mrcPixelDataSet(chain, x, y, 0, -1, mrcPixelRePart);
}
+ }
}
}
}
y = ori.y;
flagIn = -1;
- for(chainCode=chainCodeStart; chainCode<chainCodeStart+8 && flagIn<0; chainCode++) {
+ for(chainCode=(chainCodeStart-0+8)%8; chainCode<chainCodeStart+8 && flagIn<0; chainCode++) {
switch(mode) {
case 0: // 8-neighbor
case 2: { // 8-neighbor
}
}
}
- DEBUGPRINT3("ChainCode: %d abs %d start %d\n", *chain, chainCode-1, chainCodeStart)
+ //DEBUGPRINT3("ChainCode: %d abs %d start %d\n", *chain, chainCode-1, chainCodeStart)
return *chain;
}
extern void lmrcImageSurfaceAreaCalcPrint(FILE* fpt, lmrcImageSurfaceAreaCalcInfo linfo, int mode);
extern void lmrcImageSurfaceAreaCalcUsage(FILE* fpt);
-
extern void lmrcImageCircularityCalc(lmrcImageFeatureList* linfo, int mode);
extern void lmrcImageComplexityCalc(lmrcImageFeatureList* linfo, int mode);
extern void lmrcImageRadiusCalc(lmrcImageFeatureList* linfo, int mode);
-/*
-# %M% %Y% %I%
-# The latest update : %G% at %U%
-#%Z% lmrcImageNormalizing ver %I%
-#%Z% Created by tacyas
-#%Z%
-#%Z% Usage : lmrcImageNormalizing
-#%Z% Attention
-#%Z%
-*/
+/* # %M% %Y% %I% # The latest update : %G% at %U% #%Z% lmrcImageNormalizing ver %I% #%Z% Created by tacyas #%Z% #%Z% Usage : lmrcImageNormalizing #%Z% Attention #%Z% */
#include <stdlib.h>
#include <stdio.h>
static char __sccs_id[] = "%Z%lmrcImageNormalizing ver%I%; Date:%D% %Z%";
fprintf(fpt, " data = A*data + B \n");
fprintf(fpt, "%3d: Assume the density as gaussion.\n", lmrcImageNormalizingModeAssumeGaussian);
fprintf(fpt, " data = A*Normalized(data) + B , where normalized means (average=0, SD=1)\n");
+ fprintf(fpt, "%3d: Min-75percent: Background and Object(75)\n", lmrcImageNormalizingModeMin75percent);
+ fprintf(fpt, " data = A*(data-Min)/(75percent-Min)x0.75 + B \n");
}
void
}
break;
}
+ case lmrcImageNormalizingModeMin75percent: {
+ for(x=0; x<in->HeaderN.x; x++) {
+ for(y=0; y<in->HeaderN.y; y++) {
+ for(z=0; z<in->HeaderN.z; z++) {
+ mrcPixelDataGet(in, x, y, z, &data, mrcPixelRePart, mrcPixelHowNearest);
+ data = linfo->A*(data - in->HeaderAMin)/(in->HeaderAMax - in->HeaderAMax)*0.75 + linfo->B;
+ mrcPixelDataSet(out, x, y, z, data, mrcPixelRePart);
+ }
+ }
+ }
+ break;
+ }
case lmrcImageNormalizingModeUsingContour: {
for(x=0; x<in->HeaderN.x; x++) {
for(y=0; y<in->HeaderN.y; y++) {
lmrcImageNormalizingModeUsingContour=2,
lmrcImageNormalizingModeUsingContourWithSolventFlattening=3,
lmrcImageNormalizingModeNoEstimation=4,
- lmrcImageNormalizingModeAssumeGaussian=5
+ lmrcImageNormalizingModeAssumeGaussian=5,
+ lmrcImageNormalizingModeMin75percent=6
} lmrcImageNormalizingMode ;
typedef struct lmrcImageNormalizingInfo {
exit(EXIT_FAILURE);
}
}
-
}
WORLDNAME=Tools
-WORLDNAME=Tools
-WORLDNAME=Tools
-WORLDNAME=Tools
-WORLDNAME=Tools
-WORLDNAME=Tools
-WORLDNAME=Tools
-WORLDNAME=Tools
-WORLDNAME=Tools
-WORLDNAME=Tools
-WORLDNAME=Tools
-WORLDNAME=Tools
-WORLDNAME=Tools
-WORLDNAME=Tools
-WORLDNAME=Tools
-WORLDNAME=Tools
-WORLDNAME=Tools
-WORLDNAME=Tools
-WORLDNAME=Tools
-WORLDNAME=Tools
-WORLDNAME=Tools
-WORLDNAME=Tools
-WORLDNAME=Tools
-WORLDNAME=Tools
-WORLDNAME=Tools
-WORLDNAME=Tools
-WORLDNAME=Tools
-WORLDNAME=Tools
-WORLDNAME=Tools
-WORLDNAME=Tools
-WORLDNAME=Tools
-SOURCE=\
-eosPointCurvatureInfo \
-eosPointICP \
-eosPointProjector \
-eosPointRotation \
+SOURCE_FILE =\
#LastSource
"-o","-o[utput]","OutputDataFile","Essential","1","1","Out","outFile","NULL"
"-ot","-o[utput]t[ype]","OutputDataFile","Essential","1","1","OutType","Integer","2"
"-c","-c[onfig]","ConfigurationFile","Optional","1","1","configFile","inFile","NULL"
+"-EAMode","-EAMode","Euler Angle","Optional","1","1","EAMode","String","ZEYS"
+"-Iter","-Iter[ationLimit]","IteretionLimit","Optional","1","1","IterationLimit","Integer","10000"
+"-Pattern","-Pattern","Pickup Pattern","Optional","1","1","Pattern","Integer","10"
+"-Thres","-Thres[hold]","Threshold","Optional","1","1","ScoreThreshold","Real","0.0"
+"-Pick","-Pick[upPercent]","Pickup Percent","Optional","1","1","Pickup","Real","0.8"
"-m","-m[ode]","Mode","Optional","1","1","mode","Integer","0"
long flagOutType;
long OutType;
-
+
+ long flagconfigFile;
+ char* configFile;
+ FILE* fptconfigFile;
+
long flagEAMode;
char* EAMode;
-
+
long flagIterationLimit;
long IterationLimit;
-
+
long flagPattern;
long Pattern;
-
+
long flagScoreThreshold;
- double ScoreThreshold;
+ float ScoreThreshold;
- long flagconfigFile;
- char* configFile;
- FILE* fptconfigFile;
+ long flagPickup;
+ float Pickup;
long flagmode;
long mode;
--- /dev/null
+#ifndef EOSPOINTICP_H
+#define EOSPOINTICP_H
+#include <stdio.h>
+#include <stdlib.h>
+
+#define OPTION_FLAG '-'
+#define OPTION_FLAG_POS (0)
+#define OPTION_POS (1)
+
+
+
+
+typedef struct eosPointICPInfo {
+ long flagRedirect;
+
+ long flagIn;
+ char* In;
+ FILE* fptIn;
+
+ long flagInType;
+ long InType;
+
+ long flagRef;
+ char* Ref;
+ FILE* fptRef;
+
+ long flagRefType;
+ long RefType;
+
+ long flagOut;
+ char* Out;
+ FILE* fptOut;
+
+ long flagOutType;
+ long OutType;
+
+ long flagEAMode;
+ char* EAMode;
+
+ long flagIterationLimit;
+ long IterationLimit;
+
+ long flagPattern;
+ long Pattern;
+
+ long flagScoreThreshold;
+ double ScoreThreshold;
+
+ long flagconfigFile;
+ char* configFile;
+ FILE* fptconfigFile;
+
+ long flagmode;
+ long mode;
+
+} eosPointICPInfo;
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern void argCheck(eosPointICPInfo* info, int argc, char* avgv[]);
+extern void khorosInit(int argc, char* avgv[]);
+extern void init0(eosPointICPInfo* info);
+extern void init1(eosPointICPInfo* info);
+extern void usage(char* usage);
+extern void additionalUsage(void);
+extern void htmlBeforeUsage(char* usage);
+extern void htmlAfterUsage(char* usage);
+#ifdef __cplusplus
+};
+#endif
+#endif /* EOSPOINTICP_H */
}
SBREAK;
}
- SCASE("EA"){
- info->EAMode = stringGetNthWord(argv[i+1], 1, " ,");
- i++;
- info->flagEAMode++;
+ SCASE("c") {
+ if(i+1<argc) {
+ info->configFile = stringGetNthWord(argv[i+1], 1, " ,");
+ i++;
+ info->flagconfigFile++;
+ } else {
+ usage(argv[0]);
+ exit(EXIT_FAILURE);
+ }
+ SBREAK;
}
- SCASE("il"){
+ SCASE("EAMode") {
+ if(i+1<argc) {
+ info->EAMode = stringGetNthWord(argv[i+1], 1, " ,");
+ i++;
+ info->flagEAMode++;
+ } else {
+ usage(argv[0]);
+ exit(EXIT_FAILURE);
+ }
+ SBREAK;
+ }
+ SCASE("Iter") {
if(i+1<argc) {
info->IterationLimit = stringGetNthIntegerData(argv[i+1], 1, " ,");
i++;
}
SBREAK;
}
- SCASE("p"){
+ SCASE("Pattern") {
if(i+1<argc) {
info->Pattern = stringGetNthIntegerData(argv[i+1], 1, " ,");
i++;
}
SBREAK;
}
- SCASE("ST"){
+ SCASE("Thres") {
if(i+1<argc) {
info->ScoreThreshold = stringGetNthRealData(argv[i+1], 1, " ,");
i++;
}
SBREAK;
}
- SCASE("c") {
+ SCASE("Pick") {
if(i+1<argc) {
- info->configFile = stringGetNthWord(argv[i+1], 1, " ,");
+ info->Pickup = stringGetNthRealData(argv[i+1], 1, " ,");
i++;
- info->flagconfigFile++;
+ info->flagPickup++;
} else {
usage(argv[0]);
exit(EXIT_FAILURE);
}
//座標をピックアップする pickup_percentの割合でflagが立つ
-void pickupPoint(eosPoint* inP, eosPoint* pickup_inP, int cnt_in_point)
+void pickupPoint(eosPoint* inP, eosPoint* pickup_inP, int cnt_in_point, double pickup_percent)
{
int i, j, pickup_flag;
- float pickup_percent = 0.8;
eosPointTop(inP);
eosPointInit(pickup_inP, NULL);
fprintf(info->fptOut,"ref\t\t\t\ticp_result\n");
for (i = 0; i < count; i++){
moveRefAccordingToCP(closest_index_pair[i], refP);
- fprintf(info->fptOut, "%lf %lf %lf\t%lf %lf %lf\n", refP->current->p.coord.data[0], refP->current->p.coord.data[1], refP->current->p.coord.data[2],
- final_inP.current->p.coord.data[0], final_inP.current->p.coord.data[1], final_inP.current->p.coord.data[2]);
+ fprintf(info->fptOut, "%lf %lf %lf\t%lf %lf %lf\n",
+ refP->current->p.coord.data[0],
+ refP->current->p.coord.data[1],
+ refP->current->p.coord.data[2],
+ final_inP.current->p.coord.data[0],
+ final_inP.current->p.coord.data[1],
+ final_inP.current->p.coord.data[2]);
eosPointNext(&final_inP);
}
}
for(icp_pattern=1;icp_pattern<=info.Pattern;icp_pattern++){
progressBar(icp_pattern, info.Pattern);
- pickupPoint(&inP, &pickup_inP, cnt_in_point);
+ pickupPoint(&inP, &pickup_inP, cnt_in_point, info.Pickup);
icpAlgorhythm(&pickup_inP, &refP, info.ScoreThreshold, info.IterationLimit, &icp_result_set);
MemorizeStateOfMinimumScore(&best_icp_result_set, icp_result_set, icp_pattern);
}
-O 1 0 1 1 0 1 -1x1+1+7.500000 ' ' 'Out' 'OutputDataFile' o
-i 1 0 1 1 0 -1x1+1+9.000000 0 0 2 0 0 'OutType' 'OutputDataFile' ot
-I 1 0 1 0 0 1 -1x1+1+10.500000 ' ' 'configFile' 'ConfigurationFile' c
- -i 1 0 1 0 0 -1x1+1+12.000000 0 0 0 0 0 'mode' 'Mode' m
+ -s 1 0 1 0 0 -1x1+1+12.000000 0 0 0 0 0 'EAMode' 'Euler Angle' EAMode
+ -i 1 0 1 0 0 -1x1+1+13.500000 0 0 10000 0 0 'IterationLimit' 'IteretionLimit' Iter
+ -i 1 0 1 0 0 -1x1+1+15.000000 0 0 10 0 0 'Pattern' 'Pickup Pattern' Pattern
+ -f 1 0 1 0 0 -1x1+1+16.500000 0 0 0.000000 0 0 0 'ScoreThreshold' 'Threshold' Thres
+ -f 1 0 1 0 0 -1x1+1+18.000000 0 0 0.800000 0 0 0 'Pickup' 'Pickup Percent' Pick
+ -i 1 0 1 0 0 -1x1+1+19.500000 0 0 0 0 0 'mode' 'Mode' m
-E
-E
-E
init0(eosPointICPInfo* info)
{
info->fptIn = NULL; info->flagIn = 0;
- info->InType = 0; info->flagInType = 0;
+ info->InType = 2; info->flagInType = 0;
info->fptRef = NULL; info->flagRef = 0;
- info->RefType = 0; info->flagRefType = 0;
+ info->RefType = 2; info->flagRefType = 0;
info->fptOut = NULL; info->flagOut = 0;
- info->OutType = 0; info->flagOutType = 0;
- info->EAMode = stringGetNthWord("ZONS", 1, "\0"); info->flagEAMode = 0;
- info->IterationLimit=10000; info->flagIterationLimit = 0;
- info->Pattern = 10; info->flagPattern = 0;
- info->ScoreThreshold = 0.0; info->flagScoreThreshold = 0;
+ info->OutType = 2; info->flagOutType = 0;
info->fptconfigFile = NULL; info->flagconfigFile = 0;
+ info->EAMode = stringGetNthWord("ZEYS", 1, "\0"); info->flagEAMode = 0;
+ info->IterationLimit = 10000; info->flagIterationLimit = 0;
+ info->Pattern = 10; info->flagPattern = 0;
+ info->ScoreThreshold = 0.0; info->flagScoreThreshold = 0;
+ info->Pickup = 0.8; info->flagPickup = 0;
info->mode = 0; info->flagmode = 0;
}
}
if(info->flagOutType) {
}
+
+ if(info->flagconfigFile) {
+ info->fptconfigFile = fileOpen(info->configFile, "r");
+ }
+
if(info->flagEAMode) {
}
+
if(info->flagIterationLimit) {
}
- if(info->flagPattern){
-
+
+ if(info->flagPattern) {
}
- if(info->flagScoreThreshold){
+
+ if(info->flagScoreThreshold) {
}
- if(info->flagconfigFile) {
- info->fptconfigFile = fileOpen(info->configFile, "r");
+ if(info->flagPickup) {
}
if(info->flagmode) {
--- /dev/null
+include ../../Config/Define.inc
+include ../../../Config/Define.inc
+include ../../../../Config/Define.inc
+include ../../../../../Config/Define.inc
+
+all: help exec
+
+help:
+ @echo "----- Help Message Check -----"
+ @../$(OSTYPE)/$(OBJECTNAME) -h
+
+exec:
+ @echo "----- Execution Check -----"
+ ../$(OSTYPE)/$(OBJECTNAME) -i data/inP0 -it 0 -r data/refP -rt 0 -o data/out0 -ot 0 -Thres 0.01 -Pattern 100
+ ../$(OSTYPE)/$(OBJECTNAME) -i data/inP0 -it 0 -r data/refP -rt 0 -o data/out0-100 -ot 0 -Thres 0.01 -Pattern 100 -Pick 1.0
+ ../$(OSTYPE)/$(OBJECTNAME) -i data/inP0 -it 0 -r data/refP -rt 0 -o data/out0-50 -ot 0 -Thres 0.01 -Pattern 100 -Pick 0.5
+ ../$(OSTYPE)/$(OBJECTNAME) -i data/inP1 -it 0 -r data/refP -rt 0 -o data/out1 -ot 0 -Thres 0.01 -Pattern 100
+ ../$(OSTYPE)/$(OBJECTNAME) -i data/inP2 -it 0 -r data/refP -rt 0 -o data/out2 -ot 0 -Thres 0.01 -Pattern 100
+ ../$(OSTYPE)/$(OBJECTNAME) -i data/inP0 -it 0 -r data/refP1 -rt 0 -o data/out0-1 -ot 0 -Thres 0.01 -Pattern 100
+ ../$(OSTYPE)/$(OBJECTNAME) -i data/inP1 -it 0 -r data/refP1 -rt 0 -o data/out1-1 -ot 0 -Thres 0.01 -Pattern 100
+ ../$(OSTYPE)/$(OBJECTNAME) -i data/inP2 -it 0 -r data/refP1 -rt 0 -o data/out2-1 -ot 0 -Thres 0.01 -Pattern 100
+ @echo "----- Calc check -----"
+
+clean:
--- /dev/null
+../../../../../..//data/eosPointICP
\ No newline at end of file
{
fprintf(stderr, "Usage: %s\n", thisProgram);
fprintf(stderr, "Options:\n");
- fprintf(stderr, " [-i[nput] In (NULL ).as(inFile ) ] :Essential :Input: eosPoint\n");
- fprintf(stderr, " [-i[nput]t[ype] InType (2 ).as(Integer ) ] :Optional :eosPointType\n");
- fprintf(stderr, " [-r[eference] Ref (NULL ).as(inFile ) ] :Essential :Input: eosPoint\n");
- fprintf(stderr, " [-r[eference]t[ype] RefType (2 ).as(Integer ) ] :Optional :Input: eosPoint\n");
- fprintf(stderr, " [-o[utput] Out (NULL ).as(outFile ) ] :Essential :OutputDataFile\n");
- fprintf(stderr, " [-o[utput]t[ype] OutType (2 ).as(Integer ) ] :Essential :OutputDataFile\n");
- fprintf(stderr, " [-i[teration]l[imit] IterationLimit (10000 ).as(Integer ) ] :Optional :Iteration Limit\n");
- fprintf(stderr, " [-p[erttern]] Pattern (10 ).as(Integer ) ] :Optional :Pattern\n");
- fprintf(stderr, " [-E[uler]A[ngle] EulerAngle (ZONS ).as(String ) ] :Optional :EulerAngle\n");
- fprintf(stderr, " [-S[core]T[hreshold]] ScoreThreshold (0 ).as(Real ) ] :Optional :ScoreThreshold\n");
- fprintf(stderr, " [-c[onfig] configFile (NULL ).as(inFile ) ] :Optional :ConfigurationFile\n");
- fprintf(stderr, " [-m[ode] mode (0 ).as(Integer ) ] :Optional :Mode\n");
+ fprintf(stderr, " [-i[nput] In (NULL ).as(inFile ) ] :Essential :Input: eosPoint\n");
+ fprintf(stderr, " [-i[nput]t[ype] InType (2 ).as(Integer ) ] :Optional :eosPointType\n");
+ fprintf(stderr, " [-r[eference] Ref (NULL ).as(inFile ) ] :Essential :Input: esoPoint\n");
+ fprintf(stderr, " [-r[eference]t[ype] RefType (2 ).as(Integer ) ] :Optional :Input: esoPoint\n");
+ fprintf(stderr, " [-o[utput] Out (NULL ).as(outFile ) ] :Essential :OutputDataFile\n");
+ fprintf(stderr, " [-o[utput]t[ype] OutType (2 ).as(Integer ) ] :Essential :OutputDataFile\n");
+ fprintf(stderr, " [-c[onfig] configFile (NULL ).as(inFile ) ] :Optional :ConfigurationFile\n");
+ fprintf(stderr, " [-EAMode EAMode (ZEYS ).as(String ) ] :Optional :Euler Angle\n");
+ fprintf(stderr, " [-Iter[ationLimit] IterationLimit (10000 ).as(Integer ) ] :Optional :IteretionLimit\n");
+ fprintf(stderr, " [-Pattern Pattern (10 ).as(Integer ) ] :Optional :Pickup Pattern\n");
+ fprintf(stderr, " [-Thres[hold] ScoreThreshold (0.0 ).as(Real ) ] :Optional :Threshold\n");
+ fprintf(stderr, " [-Pick[upPercent] Pickup (0.8 ).as(Real ) ] :Optional :Pickup Percent\n");
+ fprintf(stderr, " [-m[ode] mode (0 ).as(Integer ) ] :Optional :Mode\n");
additionalUsage();
}
mrcImageDensityInfo \
mrcImageDensityNormalization \
mrcImageDensityNormalizationByImage \
+mrcImageDensityWeightedAreaCalc \
mrcImageDilation \
mrcImageDisplayDensityAsTempFactor \
mrcImageDistanceConversion \
mrcImageFilterCreate \
mrcImageFilteringbyFile \
mrcImageFilteringbyFileForVariance \
+mrcImageFlatFieldCorrection \
mrcImageFloating \
mrcImageFourierNeighborCorrelation \
mrcImageFourierPowerSpectrum \
averager = linfo.rmax;
}
DEBUGPRINT1("r: %g \n",averager);
- av=lmrcImage3DPadfilamentCalcavr(in ,averager);
+ if(linfo.flagr) {
+ av=lmrcImage3DPadfilamentCalcavr(in, averager);
+ } else {
+ av=lmrcImage3DPadfilamentCalcavr(in, -1);
+ }
} else {
av=linfo.v;
}
case 1:
case 2:
if (!linfo.flagv){
- av = lmrcImage3DPadfilamentCalcavr(in, linfo.rmax+linfo.w);
+ if(linfo.flagr) {
+ av = lmrcImage3DPadfilamentCalcavr(in, linfo.rmax+linfo.w);
+ } else {
+ av = lmrcImage3DPadfilamentCalcavr(in, -1);
+ }
DEBUGPRINT1("r: %g \n",averager);
fprintf(stdout,"av: %g \n",av);
} else {
int x,y,z;
double data,cx,cy,cz,sx,sy,sz,r2,av,c,dr2;
double dstx, dsty, dstz;
- double offset;
+ double offset, v;
out->Header = in->Header;
out->HeaderN.x = linfo.Nx;
sy=(out->HeaderN.y-in->HeaderN.y)*0.5;
sz=(out->HeaderN.z-in->HeaderN.z)*0.5;
r2=SQR(linfo.rmax);
+
+ // Floating and padding value
+ if (linfo.flagFloating) { // Boundery
+ if(linfo.flagr) {
+ av=lmrcImage3DPadCalcavr(in, linfo.rmax);
+ } else {
+ av=lmrcImage3DPadCalcavr(in, -1);
+ }
+ } else { // NotFloating
+ av = 0;
+ }
+
+ if(linfo.flagFloating) {
+ if(linfo.flagv) {
+ v = linfo.v;
+ offset = av - v;
+ } else {
+ v = 0;
+ offset = av;
+ }
+ } else {
+ v = 0;
+ offset = 0;
+ }
+
+ // Padding value
+ for (z=0;z<out->HeaderN.z;z++){
+ for (y=0;y<out->HeaderN.y;y++){
+ for (x=0;x<out->HeaderN.x;x++){
+ //
+ mrcPixelDataSet(out, x, y, z, v, mrcPixelRePart);
+ }
+ }
+ }
+
switch(mode){
case 0:
- if (!linfo.flagv){
- av=lmrcImage3DPadCalcavr(in, linfo.rmax);
- } else {
- av=linfo.v;
- }
- if(linfo.flagFloating) {
- offset = av;
- } else {
- offset = 0;
- }
for (z=0;z<out->HeaderN.z;z++){
for (y=0;y<out->HeaderN.y;y++){
for (x=0;x<out->HeaderN.x;x++){
break;
case 1:
case 2:
- if (!linfo.flagv) {
- av=lmrcImage3DPadCalcavr(in ,linfo.rmax+linfo.w);
- } else {
- av=linfo.v;
- }
- if(linfo.flagFloating) {
- offset = av;
- } else {
- offset = 0;
- }
- fprintf(stdout,"av :%g\n",av);
+ //fprintf(stdout,"av :%g\n",av);
for (z=0;z<in->HeaderN.z;z++){
for (y=0;y<in->HeaderN.y;y++){
for (x=0;x<in->HeaderN.x;x++){
double cx,cy,cz,r2,sum,data,av;
/* begin */
- n=0;
- sum=0;
- cx=(in->HeaderN.x-1)*0.5;
- cy=(in->HeaderN.y-1)*0.5;
- cz=(in->HeaderN.z-1)*0.5;
- for (z=0;z<in->HeaderN.z;z++){
- for (y=0;y<in->HeaderN.y;y++){
- for (x=0;x<in->HeaderN.x;x++){
- r2=SQR(x-cx)+SQR(y-cy)+SQR(z-cz);
- if (SQR(rmax) <= r2 && r2<SQR(rmax+1)) {
- mrcPixelDataGet(in ,x ,y ,z ,&data, mrcPixelRePart, mrcPixelHowNearest);
- sum+=data;
- n++;
+ if(0<=rmax) {
+ n=0;
+ sum=0;
+ cx=(in->HeaderN.x-1)*0.5;
+ cy=(in->HeaderN.y-1)*0.5;
+ cz=(in->HeaderN.z-1)*0.5;
+ for (z=0;z<in->HeaderN.z;z++){
+ for (y=0;y<in->HeaderN.y;y++){
+ for (x=0;x<in->HeaderN.x;x++){
+ r2=SQR(x-cx)+SQR(y-cy)+SQR(z-cz);
+ if (SQR(rmax) <= r2 && r2<SQR(rmax+1)) {
+ mrcPixelDataGet(in ,x ,y ,z ,&data, mrcPixelRePart, mrcPixelHowNearest);
+ sum+=data;
+ n++;
+ }
}
- }
- }
- }
- av=sum/n;
+ }
+ }
+ av=sum/n;
+ } else {
+ n=0;
+ sum=0;
+ for (z=0;z<in->HeaderN.z;z++){
+ for (y=0;y<in->HeaderN.y;y++){
+ for (x=0;x<in->HeaderN.x;x++){
+ if( z==0||z==in->HeaderN.z-1
+ ||y==0||y==in->HeaderN.y-1
+ ||x==0||x==in->HeaderN.x-1) {
+ sum+=data;
+ n++;
+ }
+ }
+ }
+ }
+ av=sum/n;
+ }
return(av);
}
# FileFormat
"-i","-i[nput]","InputDataFile","Essential","1","1","In","inFile","NULL"
"-o","-o[utput]","OutputDataFile","Essential","1","1","Out","outFile","NULL"
-"-nx","-nx","Number:x-axis","Optional","1","1","nx","Integer","1"
-"-ny","-ny","Number:y-axis","Optional","1","1","ny","Integer","1"
-"-nz","-nz","Number:z-axis","Optional","1","1","nz","Integer","1"
+"-nx","-nx","Number:x-axis(a-axis)","Optional","1","1","nx","Integer","1"
+"-ny","-ny","Number:y-axis(b-axis)","Optional","1","1","ny","Integer","1"
+"-nz","-nz","Number:z-axis(c-axis)","Optional","1","1","nz","Integer","1"
+"-start","-start","start coord(x, y, z)[Ang]","Optional","3","1","StartX","Real","0.0","2","StartY","Real","0.0","3","StartZ","Real","0.0"
+"-A","-A[-axis]","a(x, y, z)[Ang]","Optional","3","1","AX","Real","1.0","2","AY","Real","0.0","3","AZ","Real","0.0"
+"-B","-B[-axis]","b(x, y, z)[Ang]","Optional","3","1","BX","Real","0.0","2","BY","Real","1.0","3","BZ","Real","0.0"
+"-C","-C[-axis]","c(x, y, z)[Ang]","Optional","3","1","CX","Real","0.0","2","CY","Real","0.0","3","CZ","Real","1.0"
+"-M","-M[ode]","Mode: PixelHow","Optional","1","1","Mode","Integer","0"
"-c","-c[onfig]","ConfigurationFile","Optional","1","1","configFile","inFile","NULL"
"-m","-m[ode]","Mode","Optional","1","1","mode","Integer","0"
long flagnz;
long nz;
+ long flagStartX;
+ float StartX;
+
+ long flagStartY;
+ float StartY;
+
+ long flagStartZ;
+ float StartZ;
+
+ long flagAX;
+ float AX;
+
+ long flagAY;
+ float AY;
+
+ long flagAZ;
+ float AZ;
+
+ long flagBX;
+ float BX;
+
+ long flagBY;
+ float BY;
+
+ long flagBZ;
+ float BZ;
+
+ long flagCX;
+ float CX;
+
+ long flagCY;
+ float CY;
+
+ long flagCZ;
+ float CZ;
+
+ long flagMode;
+ long Mode;
+
long flagconfigFile;
char* configFile;
FILE* fptconfigFile;
}
SBREAK;
}
+ SCASE("start") {
+ if(i+3<argc) {
+ info->StartX = stringGetNthRealData(argv[i+1], 1, " ,");
+ i++;
+ info->flagStartX++;
+ info->StartY = stringGetNthRealData(argv[i+1], 1, " ,");
+ i++;
+ info->flagStartY++;
+ info->StartZ = stringGetNthRealData(argv[i+1], 1, " ,");
+ i++;
+ info->flagStartZ++;
+ } else {
+ usage(argv[0]);
+ exit(EXIT_FAILURE);
+ }
+ SBREAK;
+ }
+ SCASE("A") {
+ if(i+3<argc) {
+ info->AX = stringGetNthRealData(argv[i+1], 1, " ,");
+ i++;
+ info->flagAX++;
+ info->AY = stringGetNthRealData(argv[i+1], 1, " ,");
+ i++;
+ info->flagAY++;
+ info->AZ = stringGetNthRealData(argv[i+1], 1, " ,");
+ i++;
+ info->flagAZ++;
+ } else {
+ usage(argv[0]);
+ exit(EXIT_FAILURE);
+ }
+ SBREAK;
+ }
+ SCASE("B") {
+ if(i+3<argc) {
+ info->BX = stringGetNthRealData(argv[i+1], 1, " ,");
+ i++;
+ info->flagBX++;
+ info->BY = stringGetNthRealData(argv[i+1], 1, " ,");
+ i++;
+ info->flagBY++;
+ info->BZ = stringGetNthRealData(argv[i+1], 1, " ,");
+ i++;
+ info->flagBZ++;
+ } else {
+ usage(argv[0]);
+ exit(EXIT_FAILURE);
+ }
+ SBREAK;
+ }
+ SCASE("C") {
+ if(i+3<argc) {
+ info->CX = stringGetNthRealData(argv[i+1], 1, " ,");
+ i++;
+ info->flagCX++;
+ info->CY = stringGetNthRealData(argv[i+1], 1, " ,");
+ i++;
+ info->flagCY++;
+ info->CZ = stringGetNthRealData(argv[i+1], 1, " ,");
+ i++;
+ info->flagCZ++;
+ } else {
+ usage(argv[0]);
+ exit(EXIT_FAILURE);
+ }
+ SBREAK;
+ }
+ SCASE("M") {
+ if(i+1<argc) {
+ info->Mode = stringGetNthIntegerData(argv[i+1], 1, " ,");
+ i++;
+ info->flagMode++;
+ } else {
+ usage(argv[0]);
+ exit(EXIT_FAILURE);
+ }
+ SBREAK;
+ }
SCASE("c") {
if(i+1<argc) {
info->configFile = stringGetNthWord(argv[i+1], 1, " ,");
info->nx = 1; info->flagnx = 0;
info->ny = 1; info->flagny = 0;
info->nz = 1; info->flagnz = 0;
+ info->StartX = 0.0; info->flagStartX = 0;
+ info->StartY = 0.0; info->flagStartY = 0;
+ info->StartZ = 0.0; info->flagStartZ = 0;
+ info->AX = 1.0; info->flagAX = 0;
+ info->AY = 0.0; info->flagAY = 0;
+ info->AZ = 0.0; info->flagAZ = 0;
+ info->BX = 0.0; info->flagBX = 0;
+ info->BY = 1.0; info->flagBY = 0;
+ info->BZ = 0.0; info->flagBZ = 0;
+ info->CX = 0.0; info->flagCX = 0;
+ info->CY = 0.0; info->flagCY = 0;
+ info->CZ = 1.0; info->flagCZ = 0;
+ info->Mode = 0; info->flagMode = 0;
info->fptconfigFile = NULL; info->flagconfigFile = 0;
info->mode = 0; info->flagmode = 0;
}
if(info->flagnz) {
}
+ if(info->flagStartX) {
+ }
+
+ if(info->flagStartY) {
+ }
+
+ if(info->flagStartZ) {
+ }
+
+ if(info->flagAX) {
+ }
+
+ if(info->flagAY) {
+ }
+
+ if(info->flagAZ) {
+ }
+
+ if(info->flagBX) {
+ }
+
+ if(info->flagBY) {
+ }
+
+ if(info->flagBZ) {
+ }
+
+ if(info->flagCX) {
+ }
+
+ if(info->flagCY) {
+ }
+
+ if(info->flagCZ) {
+ }
+
+ if(info->flagMode) {
+ }
+
if(info->flagconfigFile) {
info->fptconfigFile = fileOpen(info->configFile, "r");
}
#include <math.h>
#define GLOBAL_DECLARATION
#include "../inc/config.h"
+
+#undef DEBUG
+#include "genUtil.h"
#include "mrcImage.h"
#include "lmrcImageCrystalCreate.h"
mrcImage out;
init0(&info);
- argCheck(&info, argc, argv);
- init1(&info);
+ argCheck(&info, argc, argv);
+ init1(&info);
mrcFileRead(&in, info.In, "in main", 0);
linfo.nx = info.nx;
linfo.ny = info.ny;
linfo.nz = info.nz;
+ if(info.flagAX) {
+ linfo.ax = info.AX;
+ linfo.ay = info.AY;
+ linfo.az = info.AZ;
+ } else {
+ linfo.ax = in.HeaderN.x*in.HeaderLength.x;
+ linfo.ay = 0;
+ linfo.az = 0;
+ }
+ if(info.flagBX) {
+ linfo.bx = info.BX;
+ linfo.by = info.BY;
+ linfo.bz = info.BZ;
+ } else {
+ linfo.bx = 0;
+ linfo.by = in.HeaderN.y*in.HeaderLength.y;
+ linfo.bz = 0;
+ }
+ if(info.flagCX) {
+ linfo.cx = info.CX;
+ linfo.cy = info.CY;
+ linfo.cz = info.CZ;
+ } else {
+ linfo.cx = 0;
+ linfo.cy = 0;
+ linfo.cz = in.HeaderN.z*in.HeaderLength.z;
+ }
+ if(info.flagStartX) {
+ linfo.sx = info.StartX*in.HeaderLength.x;
+ linfo.sy = info.StartY*in.HeaderLength.y;
+ linfo.sz = info.StartZ*in.HeaderLength.z;
+ } else {
+ linfo.sx = 0;
+ linfo.sy = 0;
+ linfo.sz = 0;
+ }
+ linfo.pixelMode = info.Mode;
+
+ DEBUGPRINT3("A: %f %f %f\n", linfo.ax, linfo.ay, linfo.az);
+ DEBUGPRINT3("B: %f %f %f\n", linfo.bx, linfo.by, linfo.bz);
+ DEBUGPRINT3("C: %f %f %f\n", linfo.cx, linfo.cy, linfo.cz);
lmrcImageCrystalCreate(&out, &in, &linfo);
mrcStatDataSet(&out, 0);
Options:
[-i[nput] In (NULL ).as(inFile ) ] :Essential :InputDataFile
[-o[utput] Out (NULL ).as(outFile ) ] :Essential :OutputDataFile
- [-nx nx (1 ).as(Integer ) ] :Optional :Number:x-axis
- [-ny ny (1 ).as(Integer ) ] :Optional :Number:y-axis
- [-nz nz (1 ).as(Integer ) ] :Optional :Number:z-axis
+ [-nx nx (1 ).as(Integer ) ] :Optional :Number:x-axis(a-axis)
+ [-ny ny (1 ).as(Integer ) ] :Optional :Number:y-axis(b-axis)
+ [-nz nz (1 ).as(Integer ) ] :Optional :Number:z-axis(c-axis)
+ [-start StartX (0.0 ).as(Real )
+ StartY (0.0 ).as(Real )
+ StartZ (0.0 ).as(Real ) ] :Optional :start coord(x, y, z)[Ang]
+ [-A[-axis] AX (1.0 ).as(Real )
+ AY (0.0 ).as(Real )
+ AZ (0.0 ).as(Real ) ] :Optional :a(x, y, z)[Ang]
+ [-B[-axis] BX (0.0 ).as(Real )
+ BY (1.0 ).as(Real )
+ BZ (0.0 ).as(Real ) ] :Optional :b(x, y, z)[Ang]
+ [-C[-axis] CX (0.0 ).as(Real )
+ CY (0.0 ).as(Real )
+ CZ (1.0 ).as(Real ) ] :Optional :c(x, y, z)[Ang]
+ [-M[ode] Mode (0 ).as(Integer ) ] :Optional :Mode: PixelHow
[-c[onfig] configFile (NULL ).as(inFile ) ] :Optional :ConfigurationFile
[-m[ode] mode (0 ).as(Integer ) ] :Optional :Mode
</PRE>
-Q 1 0 5.25x1+47+0 'Close'
-I 1 0 1 1 0 1 -1x1+1+1.500000 ' ' 'In' 'InputDataFile' i
-O 1 0 1 1 0 1 -1x1+1+3.000000 ' ' 'Out' 'OutputDataFile' o
- -i 1 0 1 0 0 -1x1+1+4.500000 0 0 1 0 0 'nx' 'Number:x-axis' nx
- -i 1 0 1 0 0 -1x1+1+6.000000 0 0 1 0 0 'ny' 'Number:y-axis' ny
- -i 1 0 1 0 0 -1x1+1+7.500000 0 0 1 0 0 'nz' 'Number:z-axis' nz
- -I 1 0 1 0 0 1 -1x1+1+9.000000 ' ' 'configFile' 'ConfigurationFile' c
- -i 1 0 1 0 0 -1x1+1+10.500000 0 0 0 0 0 'mode' 'Mode' m
+ -i 1 0 1 0 0 -1x1+1+4.500000 0 0 1 0 0 'nx' 'Number:x-axis(a-axis)' nx
+ -i 1 0 1 0 0 -1x1+1+6.000000 0 0 1 0 0 'ny' 'Number:y-axis(b-axis)' ny
+ -i 1 0 1 0 0 -1x1+1+7.500000 0 0 1 0 0 'nz' 'Number:z-axis(c-axis)' nz
+ -I 1 0 0 1 0 1 -1x1+1+9 ' ' '0.0' 'StartX' start coord(x, y, z)[Ang]
+ -I 1 0 0 1 0 1 -1x1+1+10 ' ' '1.0' 'AX' a(x, y, z)[Ang]
+ -I 1 0 0 1 0 1 -1x1+1+12 ' ' '0.0' 'BX' b(x, y, z)[Ang]
+ -I 1 0 0 1 0 1 -1x1+1+13 ' ' '0.0' 'CX' c(x, y, z)[Ang]
+ -i 1 0 1 0 0 -1x1+1+15.000000 0 0 0 0 0 'Mode' 'Mode: PixelHow' M
+ -I 1 0 1 0 0 1 -1x1+1+16.500000 ' ' 'configFile' 'ConfigurationFile' c
+ -i 1 0 1 0 0 -1x1+1+18.000000 0 0 0 0 0 'mode' 'Mode' m
-E
-E
-E
--- /dev/null
+include ../../Config/Define.inc
+include ../../../Config/Define.inc
+include ../../../../Config/Define.inc
+include ../../../../../Config/Define.inc
+
+all: help exec
+
+help:
+ @echo "----- Help Message Check -----"
+ @../$(OSTYPE)/$(OBJECTNAME) -h
+
+exec:
+ @echo "----- Execution Check -----"
+ ../$(OSTYPE)/$(OBJECTNAME) -i data/test-00.mrc -o data/test-00-2-3.mrc -nx 2 -ny 3 -nz 1 -M 2
+ ../$(OSTYPE)/$(OBJECTNAME) -i data/test-00.mrc -o data/test-00-2-3-50-50.mrc -nx 2 -ny 3 -nz 1 -M 2 -A 50 0 0 -B 0 50 0 -M 2
+ ../$(OSTYPE)/$(OBJECTNAME) -i data/test-00.mrc -o data/test-00-2-3-50-5050.mrc -nx 2 -ny 3 -nz 1 -M 2 -A 50 0 0 -B 50 50 0 -M 2
+ ../$(OSTYPE)/$(OBJECTNAME) -i data/test-00.mrc -o data/test-00-2-3-100-100.mrc -nx 2 -ny 3 -nz 1 -M 2 -A 100 0 0 -B 0 100 0 -M 2
+ ../$(OSTYPE)/$(OBJECTNAME) -i data/test-00.mrc -o data/test-00-2-3-100-100100.mrc -nx 2 -ny 3 -nz 1 -M 2 -A 100 0 0 -B 100 100 0 -M 2
+ ../$(OSTYPE)/$(OBJECTNAME) -i data/test-000.mrc -o data/test-000-2-3-4.mrc -nx 2 -ny 3 -nz 4 -M 2 -start -40 -40 -40
+ ../$(OSTYPE)/$(OBJECTNAME) -i data/test-000.mrc -o data/test-000-2-3-4-80-80-80.mrc -nx 2 -ny 3 -nz 4 -M 2 -A 80 0 0 -B 0 80 0 -C 0 0 80 -start -40 -40 -40 -M 2
+ ../$(OSTYPE)/$(OBJECTNAME) -i data/test-000.mrc -o data/test-000-2-3-4-80_0_0-80_80_0-0_80_80.mrc -nx 2 -ny 3 -nz 4 -M 2 -A 80 0 0 -B 80 80 0 -C 0 80 80 -start -40 -40 -40 -M 2
+ @echo "----- Calc check -----"
+
+clean:
--- /dev/null
+../../../../../..//data/mrcImageCrystalCreate
\ No newline at end of file
fprintf(stderr, "Options:\n");
fprintf(stderr, " [-i[nput] In (NULL ).as(inFile ) ] :Essential :InputDataFile\n");
fprintf(stderr, " [-o[utput] Out (NULL ).as(outFile ) ] :Essential :OutputDataFile\n");
- fprintf(stderr, " [-nx nx (1 ).as(Integer ) ] :Optional :Number:x-axis\n");
- fprintf(stderr, " [-ny ny (1 ).as(Integer ) ] :Optional :Number:y-axis\n");
- fprintf(stderr, " [-nz nz (1 ).as(Integer ) ] :Optional :Number:z-axis\n");
+ fprintf(stderr, " [-nx nx (1 ).as(Integer ) ] :Optional :Number:x-axis(a-axis)\n");
+ fprintf(stderr, " [-ny ny (1 ).as(Integer ) ] :Optional :Number:y-axis(b-axis)\n");
+ fprintf(stderr, " [-nz nz (1 ).as(Integer ) ] :Optional :Number:z-axis(c-axis)\n");
+ fprintf(stderr, " [-start StartX (0.0 ).as(Real ) \n StartY (0.0 ).as(Real ) \n StartZ (0.0 ).as(Real ) ] :Optional :start coord(x, y, z)[Ang]\n");
+ fprintf(stderr, " [-A[-axis] AX (1.0 ).as(Real ) \n AY (0.0 ).as(Real ) \n AZ (0.0 ).as(Real ) ] :Optional :a(x, y, z)[Ang]\n");
+ fprintf(stderr, " [-B[-axis] BX (0.0 ).as(Real ) \n BY (1.0 ).as(Real ) \n BZ (0.0 ).as(Real ) ] :Optional :b(x, y, z)[Ang]\n");
+ fprintf(stderr, " [-C[-axis] CX (0.0 ).as(Real ) \n CY (0.0 ).as(Real ) \n CZ (1.0 ).as(Real ) ] :Optional :c(x, y, z)[Ang]\n");
+ fprintf(stderr, " [-M[ode] Mode (0 ).as(Integer ) ] :Optional :Mode: PixelHow\n");
fprintf(stderr, " [-c[onfig] configFile (NULL ).as(inFile ) ] :Optional :ConfigurationFile\n");
fprintf(stderr, " [-m[ode] mode (0 ).as(Integer ) ] :Optional :Mode\n");
additionalUsage();
--- /dev/null
+OBJECTNAME = mrcImageDensityWeightedAreaCalc
+EXTRA_LIB =
+EXTRA_CCOPTS =
+EXTRA_INC =
--- /dev/null
+# OptionControlFile
+# FileFormat
+"-i","-i[nput]","Input:binary","Essential","1","1","In","inFile::mrcImage","NULL"
+"-d","-d[ensity]","Input:density","Essential","1","1","InDensity","inFile::mrcImage","NULL"
+"-o","-o[utput]","Output:weightedArea","Essential","1","1","Out","outFile::mrcImage","NULL"
+"-oL","-o[utput]L[abel]","Output:Label","Optional","1","1","OutLabel","outFile::mrcImage","NULL"
+"-n","-n[eighbor]","Neighbor:[6|8]","Optional","1","1","Neighbor","Integer","8"
+"-c","-c[onfig]","ConfigurationFile","Optional","1","1","configFile","inFile","NULL"
+"-m","-m[ode]","Mode","Optional","1","1","mode","Integer","0"
--- /dev/null
+include ../../../Config/Define.inc
+include ../../Config/Define.inc
+include ../Config/Define.inc
+include Config/Define.inc
+
+all:
+ cd src; make all; cd ..
+
+install:
+ cd src; make install; cd ..
+
+
+putSF:
+ if [ -f private ] ; \
+ then \
+ echo "$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME) is private"; \
+ else \
+ cvs -z4 -d:ext:$$USER@$$EOS_SOURCEFORGE commit || cvs -z4 -d:ext:$$USER@$$EOS_SOURCEFORGE import src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME); \
+ fi
+
+put:
+ cd src; make put; cd ..
+
+clean:
+ cd src; make clean; cd ..
+
+depend:
+ cd src; make depend; cd ..
+
+check:
+ @if [ ! -d $(EOS_HOME)/hostdepend/$(OSTYPE)/src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/src/$(OSTYPE) ] ; then \
+ echo making directory; \
+ mkdir -p $(EOS_HOME)/hostdepend/$(OSTYPE)/src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/src/$(OSTYPE); \
+ fi
+ ln -sf ../../../../../hostdepend/$(OSTYPE)/src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/src/$(OSTYPE) src/$(OSTYPE);
+ @$(RM) src/Makefile
+ @echo "New src/Makefile"
+ @$(CP) ../../../Config/Template/$(WORLDNAME)Template.Dir/src/Makefile src/Makefile
+ @cd src; rm -f $(OSTYPE)/.Depend; touch $(OSTYPE)/.Depend; make depend
+
+update:
+ @if [ ! -d $(EOS_HOME)/hostdepend/$(OSTYPE)/src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/src/$(OSTYPE) ] ; then \
+ echo making directory; \
+ mkdir -p $(EOS_HOME)/hostdepend/$(OSTYPE)/src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/src/$(OSTYPE); \
+ fi
+ ln -sf ../../../../../hostdepend/$(OSTYPE)/src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/src/$(OSTYPE) src/$(OSTYPE);
+ @$(RM) src/Makefile
+ @echo "New src/Makefile"
+ @$(CP) ../../../Config/Template/$(WORLDNAME)Template.Dir/src/Makefile src/Makefile
+ @cd src; rm -f $(OSTYPE)/.Depend; touch $(OSTYPE)/.Depend; echo "Y" | make update
+
+cvsupdate::
+ cvs -d $(EOS_CVSROOT) update -d
+
+cvscommit::
+ cvs -d $(EOS_CVSROOT) commit
+
+backup:
+ @cd ../../../..; \
+ echo $(OBJECTNAME) ; \
+ tar uvf ${EOS_HOME}/backup/EosBase.tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/Config ; \
+ tar uvf ${EOS_HOME}/backup/EosBase.tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/Makefile ;\
+ tar uvf ${EOS_HOME}/backup/EosBase.tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/.[A-z]* ; \
+ tar uvf ${EOS_HOME}/backup/EosBase.tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/inc ; \
+ tar uvf ${EOS_HOME}/backup/EosBase.tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/doc; \
+ tar uvf ${EOS_HOME}/backup/EosBase.tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/src/wish; \
+ tar uvf ${EOS_HOME}/backup/EosBase.tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/src/[A-z]*.[A-z]*; \
+ tar uvf ${EOS_HOME}/backup/EosBase.tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/src/.[A-z]*; \
+ tar uvf ${EOS_HOME}/backup/EosBase.tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/src/Makefile
+
+backup-all:
+ @cd ../../../..; \
+ echo $(OBJECTNAME) ; \
+ tar rvf ${EOS_HOME}/backup/EosBase.tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/Config ; \
+ tar rvf ${EOS_HOME}/backup/EosBase.tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/Makefile ;\
+ tar rvf ${EOS_HOME}/backup/EosBase.tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/.[A-z]* ; \
+ tar rvf ${EOS_HOME}/backup/EosBase.tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/inc ; \
+ tar rvf ${EOS_HOME}/backup/EosBase.tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/doc; \
+ tar rvf ${EOS_HOME}/backup/EosBase.tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/src/wish; \
+ tar rvf ${EOS_HOME}/backup/EosBase.tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/src/[A-z]*.[A-z]*; \
+ tar rvf ${EOS_HOME}/backup/EosBase.tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/src/.[A-z]*; \
+ tar rvf ${EOS_HOME}/backup/EosBase.tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/src/Makefile
+
+distribute:
+ cd ../../../..; \
+ echo $(OBJECTNAME) ; \
+ tar uvf ${EOS_HOME}/distribute/src.$(OSTYPE).tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/Config ; \
+ tar uvf ${EOS_HOME}/distribute/src.$(OSTYPE).tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/Makefile ;\
+ tar uvf ${EOS_HOME}/distribute/src.$(OSTYPE).tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/.[A-z]* ; \
+ tar uvf ${EOS_HOME}/distribute/src.$(OSTYPE).tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/inc ; \
+ tar uvf ${EOS_HOME}/distribute/src.$(OSTYPE).tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/doc; \
+ tar uvf ${EOS_HOME}/distribute/src.$(OSTYPE).tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/src/wish; \
+ tar uvf ${EOS_HOME}/distribute/src.$(OSTYPE).tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/src/[A-z]*.[A-z]*; \
+ tar uvf ${EOS_HOME}/distribute/src.$(OSTYPE).tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/src/.[A-z]*; \
+ tar uvf ${EOS_HOME}/distribute/src.$(OSTYPE).tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/src/Makefile ; \
+ tar uvf ${EOS_HOME}/distribute/src.$(OSTYPE).tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/src/$(OSTYPE)
+
+distribute-all:
+ @cd ../../../..; \
+ echo $(OBJECTNAME) ; \
+ tar rvf ${EOS_HOME}/distribute/src.$(OSTYPE).tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/Config ; \
+ tar rvf ${EOS_HOME}/distribute/src.$(OSTYPE).tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/Makefile ;\
+ tar rvf ${EOS_HOME}/distribute/src.$(OSTYPE).tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/.[A-z]* ; \
+ tar rvf ${EOS_HOME}/distribute/src.$(OSTYPE).tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/inc ; \
+ tar rvf ${EOS_HOME}/distribute/src.$(OSTYPE).tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/doc; \
+ tar rvf ${EOS_HOME}/distribute/src.$(OSTYPE).tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/src/wish; \
+ tar rvf ${EOS_HOME}/distribute/src.$(OSTYPE).tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/src/[A-z]*.[A-z]*; \
+ tar rvf ${EOS_HOME}/distribute/src.$(OSTYPE).tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/src/.[A-z]*; \
+ tar rvf ${EOS_HOME}/distribute/src.$(OSTYPE).tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/src/Makefile ; \
+ tar rvf ${EOS_HOME}/distribute/src.$(OSTYPE).tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/src/$(OSTYPE)
+
+eosintroduce:
+ ${EOS_HOME}/sbin/eosintroduce ${WORLDNAME} ${CLASSNAME} ${OBJECTNAME} ./
+
+include Config/Target.inc
--- /dev/null
+install:
+ cd ../src; make install-doc; cd ../doc
--- /dev/null
+#ifndef CONFIG_H
+#define CONFIG_H
+
+#include "../inc/mrcImageDensityWeightedAreaCalc.h"
+
+#endif /* CONFIG_H */
--- /dev/null
+#ifndef MRCIMAGEDENSITYWEIGHTEDAREACALC_H
+#define MRCIMAGEDENSITYWEIGHTEDAREACALC_H
+#include <stdio.h>
+#include <stdlib.h>
+
+#define OPTION_FLAG '-'
+#define OPTION_FLAG_POS (0)
+#define OPTION_POS (1)
+
+
+
+
+typedef struct mrcImageDensityWeightedAreaCalcInfo {
+ long flagRedirect;
+
+ long flagIn;
+ char* In;
+ FILE* fptIn;
+
+ long flagInDensity;
+ char* InDensity;
+ FILE* fptInDensity;
+
+ long flagOut;
+ char* Out;
+ FILE* fptOut;
+
+ long flagOutLabel;
+ char* OutLabel;
+ FILE* fptOutLabel;
+
+ long flagNeighbor;
+ long Neighbor;
+
+ long flagconfigFile;
+ char* configFile;
+ FILE* fptconfigFile;
+
+ long flagmode;
+ long mode;
+
+} mrcImageDensityWeightedAreaCalcInfo;
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern void argCheck(mrcImageDensityWeightedAreaCalcInfo* info, int argc, char* avgv[]);
+extern void khorosInit(int argc, char* avgv[]);
+extern void init0(mrcImageDensityWeightedAreaCalcInfo* info);
+extern void init1(mrcImageDensityWeightedAreaCalcInfo* info);
+extern void usage(char* usage);
+extern void additionalUsage(void);
+extern void htmlBeforeUsage(char* usage);
+extern void htmlAfterUsage(char* usage);
+#ifdef __cplusplus
+};
+#endif
+#endif /* MRCIMAGEDENSITYWEIGHTEDAREACALC_H */
--- /dev/null
+include ../Config/Define.inc
+include ../../Config/Define.inc
+include ../../../Config/Define.inc
+include ../../../../Config/Define.inc
+
+EOSHOME=../../../../../
+DSTDIR=$(EOSHOME)/bin
+DSTDOC=$(EOSHOME)/doc
+DSTTAR=$(EOSHOME)/tar
+
+INCFILES =
+
+LIBFILES = \
+ $(LIBPREFIX)EosObjects$(LIBSUFFIX)
+
+LIBFILESDEBUG = \
+ $(LIBPREFIX)EosObjects.debug$(LIBSUFFIX)
+
+SRCC = \
+ $(OBJECTNAME).c \
+ init.c \
+ argCheck.c \
+ usage.c \
+ util.c \
+
+SRCCXX = \
+ $(OBJECTNAME).cc \
+ init.cc \
+ argCheck.cc \
+ usage.cc \
+ util.cc \
+
+MODULES = \
+ $(OBJECTNAME).o \
+ init.o \
+ argCheck.o \
+ usage.o \
+ util.o \
+
+REALMODULES = \
+ $(OSTYPE)/$(OBJECTNAME).o \
+ $(OSTYPE)/init.o \
+ $(OSTYPE)/argCheck.o \
+ $(OSTYPE)/usage.o \
+ $(OSTYPE)/util.o
+
+MODULESDEBUG = \
+ $(OBJECTNAME).debugo \
+ init.debugo \
+ argCheck.debugo \
+ usage.debugo \
+ util.debugo \
+
+REALMODULESDEBUG = \
+ $(OSTYPE)/$(OBJECTNAME).debugo \
+ $(OSTYPE)/init.debugo \
+ $(OSTYPE)/argCheck.debugo \
+ $(OSTYPE)/usage.debugo \
+ $(OSTYPE)/util.debugo
+
+
+all: $(OSTYPE)/$(OBJECTNAME)
+ if [ ! -L $(OSTYPE) ] ; then \
+ moveHostdependent; \
+ fi
+
+debug: $(OSTYPE)/$(OBJECTNAME).debug
+
+cudagdb: $(OSTYPE)/$(OBJECTNAME).cudagdb
+
+
+$(OSTYPE)/$(OBJECTNAME)::
+ @$(RM) -f $(OSTYPE)/Makefile ; \
+ $(CP) $(EOS_HOME)/src/Config/Template/$(WORLDNAME)Template.Dir/src/ARCH/Makefile $(OSTYPE)/Makefile ; \
+ cd $(OSTYPE); \
+ $(MAKE) $(OBJECTNAME) WORLDNAME=$(WORLDNAME) CLASSNAME=$(CLASSNAME) OBJECTNAME=$(OBJECTNAME)
+
+$(OSTYPE)/$(OBJECTNAME).debug::
+ @$(RM) -f $(OSTYPE)/Makefile ; \
+ $(CP) $(EOS_HOME)/src/Config/Template/$(WORLDNAME)Template.Dir/src/ARCH/Makefile $(OSTYPE)/Makefile ; \
+ cd $(OSTYPE); \
+ $(MAKE) $(OBJECTNAME).debug WORLDNAME=$(WORLDNAME) CLASSNAME=$(CLASSNAME) OBJECTNAME=$(OBJECTNAME)
+
+$(OSTYPE)/$(OBJECTNAME).cudagdb::
+ @$(RM) -f $(OSTYPE)/Makefile ; \
+ $(CP) $(EOS_HOME)/src/Config/Template/$(WORLDNAME)Template.Dir/src/ARCH/Makefile $(OSTYPE)/Makefile ; \
+ cd $(OSTYPE); \
+ $(MAKE) $(OBJECTNAME).cudagdb WORLDNAME=$(WORLDNAME) CLASSNAME=$(CLASSNAME) OBJECTNAME=$(OBJECTNAME)
+
+cvsupdate::
+ cvs -d $(EOS_CVSROOT) update -d
+
+cvscommit::
+ cvs -d $(EOS_CVSROOT) commit
+
+edit:
+ @if [ -r $(OBJECTNAME).c ]; \
+ then \
+ sccsEdit $(OBJECTNAME).c; \
+ else \
+ echo "Source files are already editable"; \
+ fi
+ @if [ -r wish/$(OBJECTNAME).wish ]; \
+ then \
+ cd wish; sccsEdit $(OBJECTNAME).wish; \
+ else \
+ echo "Source files (wish) are already editable."; \
+ fi
+ @if [ -r ruby/$(OBJECTNAME).rb ]; \
+ then \
+ cd ruby; sccsEdit $(OBJECTNAME).rb; \
+ else \
+ echo "Source files (ruby) are already editable."; \
+ fi
+ @if [ -r perl/$(OBJECTNAME).pl ]; \
+ then \
+ cd perl; sccsEdit $(OBJECTNAME).pl ; \
+ else \
+ echo "Source files (perl) are already editable."; \
+ fi
+ @if [ -r ../Config/OptionControlFile ]; \
+ then \
+ cd ../Config; sccsEdit OptionControlFile; \
+ else \
+ echo "OptionControlFile are already editable."; \
+ fi
+
+unedit:
+ @if [ -w $(OBJECTNAME).c ]; \
+ then \
+ sccsUnedit $(OBJECTNAME).c; \
+ else \
+ echo "Source files are not editable"; \
+ fi
+ @if [ -w wish/$(OBJECTNAME).wish ]; \
+ then \
+ cd wish; sccsUnedit $(OBJECTNAME).wish; \
+ else \
+ echo "Source files (wish) are not editable."; \
+ fi
+ @if [ -w ruby/$(OBJECTNAME).rb]; \
+ then \
+ cd ruby; sccsUnedit $(OBJECTNAME).rb; \
+ else \
+ echo "Source files (ruby) are not editable."; \
+ fi
+ @if [ -w perl/$(OBJECTNAME).pl ]; \
+ then \
+ cd perl; sccsUnedit $(OBJECTNAME).pl ; \
+ else \
+ echo "Source files (ruby) are not editable."; \
+ fi
+ @if [ -w ../Config/OptionControlFile ]; \
+ then \
+ cd ../Config; sccsUnedit OptionControlFile; \
+ else \
+ echo "OptionControlFile are not editable."; \
+ fi
+
+report:
+ @if [ -r $(OBJECTNAME).c ]; \
+ then \
+ sccsReport $(OBJECTNAME).c; \
+ else \
+ echo "Source files are already editable"; \
+ fi
+ @if [ -r wish/$(OBJECTNAME).wish ]; \
+ then \
+ cd wish; sccsReport $(OBJECTNAME).wish; \
+ else \
+ echo "Source files (wish) are already editable."; \
+ fi
+ @if [ -r ruby/$(OBJECTNAME).rb ]; \
+ then \
+ cd ruby; sccsReport $(OBJECTNAME).rb; \
+ else \
+ echo "Source files (ruby) are already editable."; \
+ fi
+ @if [ -r perl/$(OBJECTNAME).pl ] ; \
+ then \
+ cd perl; sccsReport $(OBJECTNAME).pl ; \
+ else \
+ echo "Source files (perl) are already editable."; \
+ fi
+ @if [ -r ../Config/OptionControlFile ]; \
+ then \
+ cd ../Config; sccsReport OptionControlFile; \
+ else \
+ echo "OptionControlFile are already editable."; \
+ fi
+
+clean :
+ rm -f *.debugo $(OSTYPE)/*.debugo *.cudagdbo $(OSTYPE)/*.cudagdbo *.o $(OSTYPE)/*.o *.linkinfo $(OSTYPE)/*.linkinfo \
+ $(OSTYPE)/$(OBJECTNAME) $(OSTYPE)/*.$(OSTYPE) \
+ $(OSTYPE)/$(OBJECTNAME).debug $(OSTYPE)/*.$(OSTYPE).debug \
+ $(OSTYPE)/$(OBJECTNAME).cudagdb $(OSTYPE)/*.$(OSTYPE).cudagdb \
+ $(OSTYPE)/$(OBJECTNAME).linkinfo $(OSTYPE)/*.$(OSTYPE).linkinfo \
+ *.bak *.$(OSTYPE) core
+
+install: install-bin install-doc install-wish install-ruby install-shell install-perl
+ @if [ dummy$(KHOROS_KENGOBJ) != dummy ] ; \
+ then \
+ if [ -x $(KHOROS_KGENOBJ) ] ; \
+ then \
+ make install-khoros ; \
+ fi; \
+ fi
+
+install-bin:$(DSTDIR)/$(OSTYPE)/$(OBJECTNAME)
+
+$(DSTDIR)/$(OSTYPE)/$(OBJECTNAME):$(OSTYPE)/$(OBJECTNAME) $(DSTDIR)/$(OBJECTNAME)
+ @echo ---- Installing to bin
+ @echo $(DSTDIR)/$(OSTYPE)/$(OBJECTNAME)
+ @if [ ! -d $(DSTDIR)/$(OSTYPE) ]; \
+ then \
+ mkdir $(DSTDIR)/$(OSTYPE); \
+ fi
+ @if [ -x $(OSTYPE)/$(OBJECTNAME) ]; \
+ then \
+ echo "Compilation is complete"; \
+ $(RM) -f $(DSTDIR)/$(OSTYPE)/$(OBJECTNAME); \
+ $(CD) $(OSTYPE); $(INSTALL) -m 555 $(OBJECTNAME) ../$(DSTDIR)/$(OSTYPE); \
+ $(CHMOD) 555 ../$(DSTDIR)/$(OSTYPE)/$(OBJECTNAME); \
+ else \
+ echo "Compilation is incomplete. $(OBJECTNAME)"; \
+ fi
+ @echo ---- end of bin
+
+install-wish:
+ @if [ -d wish ]; \
+ then \
+ echo "---- Tcl/Tk file Install"; \
+ if [ ! -d $(DSTDIR)/wish/$(OBJECTNAME) ]; \
+ then \
+ mkdir $(DSTDIR)/wish/$(OBJECTNAME) ; \
+ fi ; \
+ $(CP) -f wish/* $(DSTDIR)/wish/$(OBJECTNAME); \
+ $(CHMOD) 555 $(DSTDIR)/wish/$(OBJECTNAME)/* ;\
+ touch $(DSTDIR)/wish/$(OBJECTNAME)/tclIndex;\
+ $(CHMOD) 666 $(DSTDIR)/wish/$(OBJECTNAME)/tclIndex;\
+ echo "---- Tcl/Tk file Installed";\
+ fi
+
+install-ruby:
+ @if [ -d ruby ]; \
+ then \
+ echo "---- Ruby/Tk file Install"; \
+ if [ ! -d $(DSTDIR)/ruby/$(OBJECTNAME) ]; \
+ then \
+ mkdir $(DSTDIR)/ruby/$(OBJECTNAME) ; \
+ fi ; \
+ $(CP) -f ruby/* $(DSTDIR)/ruby/$(OBJECTNAME); \
+ $(CHMOD) 555 $(DSTDIR)/ruby/$(OBJECTNAME)/* ; \
+ echo "---- Ruby/Tk file Installed"; \
+ fi
+
+install-perl:
+ @if [ -d perl ]; \
+ then \
+ echo "---- Perl/Tk file Install"; \
+ if [ ! -d $(DSTDIR)/perl/$(OBJECTNAME) ]; \
+ then \
+ mkdir $(DSTDIR)/perl/$(OBJECTNAME) ; \
+ fi; \
+ $(CP) -f perl/* $(DSTDIR)/perl/$(OBJECTNAME); \
+ $(CHMOD) 555 $(DSTDIR)/perl/$(OBJECTNAME)/* ; \
+ echo "---- Perl/Tk file Installed"; \
+ fi
+
+install-shell:
+ @if [ ! -d $(DSTDIR)/shell/$(OBJECTNAME) ]; \
+ then \
+ mkdir $(DSTDIR)/shell/$(OBJECTNAME) ; \
+ fi
+ @if [ -d shell ]; \
+ then \
+ echo "---- Shell file Install"; \
+ if [ ! -d $(DSTDIR)/shell/$(OBJECTNAME) ]; \
+ then \
+ mkdir $(DSTDIR)/shell/$(OBJECTNAME) ; \
+ fi ; \
+ $(CP) -f shell/* $(DSTDIR)/shell/$(OBJECTNAME); \
+ $(CHMOD) 555 $(DSTDIR)/shell/$(OBJECTNAME)/*; \
+ echo "---- Shell file Installed"; \
+ fi
+
+install-khoros:
+ @echo Installing to khoros
+ @if [ ! -d ../../../../../objects/script/$(OBJECTNAME) -a -f $(KHOROS_KGENOBJ) ]; \
+ then \
+ echo kgenobj;\
+ $(KHOROS_KGENOBJ) -tb Eos -oname $(OBJECTNAME) -type script -pane -cantata true -cat Eos -subcat $(CLASSNAME) -description $(OBJECTNAME) -bname $(OBJECTNAME) -form -lang ksh ; \
+ fi
+ @if [ ! -d ../../../../../objects/script/$(OBJECTNAME) -a -f $(KHOROS_KSET) ]; \
+ then \
+ $(KHOROS_KSET) -tb Eos -oname $(OBJECTNAME) -icon $(OBJECTNAME) ; \
+ fi
+ @if [ -d ../../../../../objects/script/$(OBJECTNAME) -a -f $(KHOROS_KSET) ]; \
+ then \
+ $(CHMOD) -R 775 ../../../../../objects/script/$(OBJECTNAME) ; \
+ if [ $? ] ; \
+ then \
+ echo "-- setting khoros ---" ; \
+ if [ -d ../../../../../objects/script/$(OBJECTNAME)/uis/ ] ; \
+ then \
+ $(CD) ../../../../../objects/script/$(OBJECTNAME)/uis/ ; \
+ $(RM) -f $(OBJECTNAME).pane ; \
+ $(LN) -s ../../../../src/Tools/$(CLASSNAME)/$(OBJECTNAME)/src/$(OBJECTNAME).pane $(OBJECTNAME).pane; \
+ $(CD) ../../ ; \
+ $(CHMOD) -R 555 $(OBJECTNAME); \
+ else \
+ echo "../../../../../objects/script/$(OBJECTNAME)/uis/ does not exist."; \
+ fi ; \
+ else \
+ echo "Failed !!: Cannot chage mode in installing $(OBJECTNAME) to khoros system"; \
+ fi ; \
+ echo "-- end of khoros-installing"; \
+ fi
+
+install-doc: html
+ @if [ ! -d $(DSTDOC)/SmallTools ]; \
+ then \
+ mkdir $(DSTDOC)/SmallTools ;\
+ fi
+ @if [ -f $(DSTDOC)/SmallTools/$(OBJECTNAME).html ]; \
+ then \
+ $(RM) -f $(DSTDOC)/SmallTools/$(OBJECTNAME).html ;\
+ fi
+ @$(CP) $(OBJECTNAME).html $(DSTDOC)/SmallTools/$(OBJECTNAME).html
+ @$(CHMOD) 444 $(DSTDOC)/SmallTools/$(OBJECTNAME).html
+ @if [ -f ../doc/*.html ]; \
+ then \
+ $(CP) ../doc/*.html $(DSTDOC)/SmallTools/ ;\
+ fi
+ @$(CHMOD) 444 $(DSTDOC)/SmallTools/$(OBJECTNAME).html
+ @if [ -f $(DSTDOC)/SmallTools/Makefile ]; \
+ then \
+ cd $(DSTDOC)/SmallTools; $(MAKE); \
+ fi
+
+html: $(OBJECTNAME).html
+
+configFileRead:
+ @ctrl2configFileRead $(CLASSNAME) $(OBJECTNAME) ../Config/OptionControlFile
+
+$(OBJECTNAME).html: $(OSTYPE)/$(OBJECTNAME)
+ @echo creating html
+ @$(OSTYPE)/$(OBJECTNAME) -html 2> $(OBJECTNAME).html.tmp
+ @sed -e s/$(OSTYPE)\\/// $(OBJECTNAME).html.tmp > $(OBJECTNAME).html
+ @$(RM) $(OBJECTNAME).html.tmp
+
+$(DSTDIR)/$(OBJECTNAME): $(OSTYPE)/$(OBJECTNAME)
+ @ln -s -f ../sbin/MachineIndependent $@
+
+depend::
+ @echo dependency checking now
+ @if [ ! -L $(OSTYPE) ] ; then \
+ moveHostdependent; \
+ fi
+ rm -f $(OSTYPE)/.Depend
+ #echo C
+ @if [ -f $(OBJECTNAME).c ] ; \
+ then \
+ echo "dependency: *.c"; \
+ echo $(DEPENDCOMMAND) $(INCLUDEDIR) $(EXTRA_INC) $(EXTRA_DEFINE) *.c ; \
+ $(DEPENDCOMMAND) $(INCLUDEDIR) $(EXTRA_INC) $(EXTRA_DEFINE) *.c >> $(OSTYPE)/.Depend ; \
+ fi
+ #echo CC
+ @if [ -f $(OBJECTNAME).cc ] ; \
+ then \
+ echo "dependency: *.cc"; \
+ echo $(DEPENDCOMMAND) $(INCLUDEDIR) $(EXTRA_INC) $(EXTRA_DEFINE) $(EXTRA_CCOPTS) *.cc ; \
+ $(DEPENDCOMMAND) $(INCLUDEDIR) $(EXTRA_INC) $(EXTRA_DEFINE) $(EXTRA_CCOPTS) *.cc >> $(OSTYPE)/.Depend ; \
+ fi
+ @if [ -f $(OBJECTNAME).ccm ] ; \
+ then \
+ echo "dependency: *.ccm"; \
+ echo $(DEPENDCOMMAND) $(INCLUDEDIR) $(EXTRA_INC) $(EXTRA_DEFINE) $(EXTRA_CCOPTS) *.ccm ; \
+ $(DEPENDCOMMAND) $(INCLUDEDIR) $(EXTRA_INC) $(EXTRA_DEFINE) $(EXTRA_CCOPTS) *.ccm >> $(OSTYPE)/.Depend ; \
+ fi
+ @if [ -f $(OBJECTNAME).cu ] ; \
+ then \
+ echo "dependency: *.cu"; \
+ echo $(DEPENDCOMMAND) $(INCLUDEDIR) $(EXTRA_INC) $(EXTRA_DEFINE) $(EXTRA_CCOPTS) *.cu ; \
+ $(DEPENDCOMMAND) $(INCLUDEDIR) $(EXTRA_INC) $(EXTRA_DEFINE) $(EXTRA_CCOPTS) *.cu >> $(OSTYPE)/.Depend ; \
+ fi
+
+update:../Config/OptionControlFile
+ maketool $(CLASSNAME) $(OBJECTNAME) update
+
+updateNoAns:../Config/OptionControlFile
+ maketool $(CLASSNAME) $(OBJECTNAME) update N
+
+changeName::
+
+Test:$(OSTYPE)/$(OBJECTNAME) TestDir
+ @if [ -f test/Makefile ] ; \
+ then \
+ cd test; make ; \
+ else \
+ echo "No test Makefile"; \
+ fi
+
+TestDir::
+ @if [ ! -d test ] ; \
+ then \
+ echo "Creating test dir"; \
+ mkdir test; \
+ fi
+ @if [ ! -f test/Makefile ] ; \
+ then \
+ echo "Creating Makefile"; \
+ cd test; \
+ protoTestMakefileCreate; \
+ fi
+ @if [ ! -d test/data ]; \
+ then \
+ mkdir $(EOSHOME)/data/$(OBJECTNAME); \
+ cd test; \
+ ln -sf ../$(EOSHOME)/data/$(OBJECTNAME) data; \
+ fi
+
+tar::
+ cd $(DSTTAR); tar cvf Tools.$(CLASSNAME).$(OBJECTNAME).tar ../bin/$(OBJECTNAME) \
+ ../bin/*/$(OBJECTNAME).* \
+ ../src/Tools/$(CLASSNAME)/$(OBJECTNAME) \
+ ; gzip Tools.$(CLASSNAME).$(OBJECTNAME).tar
+
+-include $(OSTYPE)/.Depend
+-include ../Config/Target.inc
--- /dev/null
+../../../../../hostdepend/X86MAC64/src/Tools/mrcImage/mrcImageDensityWeightedAreaCalc/src/X86MAC64
\ No newline at end of file
--- /dev/null
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <math.h>
+#include "../inc/config.h"
+#include "genUtil.h"
+#include "eosString.h"
+#include "File.h"
+#include "Memory.h"
+
+
+void
+argCheck(mrcImageDensityWeightedAreaCalcInfo* info, int argc, char* argv[])
+{
+ long i;
+ char s[1024];
+ FILE* fpt;
+
+ if(NULL==(fpt=fopen(".EosLog", "a+"))) {
+
+ } else {
+ for(i=0; i<argc; i++) {
+ fprintf(fpt, "%s ", argv[i]);
+ }
+ fprintf(fpt, "\n");
+ fclose(fpt);
+ }
+ for(i=1; i<argc; i++) {
+ if(OPTION_FLAG==argv[i][OPTION_FLAG_POS]) {
+ SSWITCH(argv[i]+OPTION_POS)
+ SCASE("i") {
+ if(i+1<argc) {
+ info->In = stringGetNthWord(argv[i+1], 1, " ,");
+ i++;
+ info->flagIn++;
+ } else {
+ usage(argv[0]);
+ exit(EXIT_FAILURE);
+ }
+ SBREAK;
+ }
+ SCASE("d") {
+ if(i+1<argc) {
+ info->InDensity = stringGetNthWord(argv[i+1], 1, " ,");
+ i++;
+ info->flagInDensity++;
+ } else {
+ usage(argv[0]);
+ exit(EXIT_FAILURE);
+ }
+ SBREAK;
+ }
+ SCASE("o") {
+ if(i+1<argc) {
+ info->Out = stringGetNthWord(argv[i+1], 1, " ,");
+ i++;
+ info->flagOut++;
+ } else {
+ usage(argv[0]);
+ exit(EXIT_FAILURE);
+ }
+ SBREAK;
+ }
+ SCASE("oL") {
+ if(i+1<argc) {
+ info->OutLabel = stringGetNthWord(argv[i+1], 1, " ,");
+ i++;
+ info->flagOutLabel++;
+ } else {
+ usage(argv[0]);
+ exit(EXIT_FAILURE);
+ }
+ SBREAK;
+ }
+ SCASE("n") {
+ if(i+1<argc) {
+ info->Neighbor = stringGetNthIntegerData(argv[i+1], 1, " ,");
+ i++;
+ info->flagNeighbor++;
+ } else {
+ usage(argv[0]);
+ exit(EXIT_FAILURE);
+ }
+ SBREAK;
+ }
+ SCASE("c") {
+ if(i+1<argc) {
+ info->configFile = stringGetNthWord(argv[i+1], 1, " ,");
+ i++;
+ info->flagconfigFile++;
+ } else {
+ usage(argv[0]);
+ exit(EXIT_FAILURE);
+ }
+ SBREAK;
+ }
+ SCASE("m") {
+ if(i+1<argc) {
+ info->mode = stringGetNthIntegerData(argv[i+1], 1, " ,");
+ i++;
+ info->flagmode++;
+ } else {
+ usage(argv[0]);
+ exit(EXIT_FAILURE);
+ }
+ SBREAK;
+ }
+ SCASE("h") {
+ usage(argv[0]);
+ exit(EXIT_SUCCESS);
+ break;
+ }
+ SCASE("html") {
+ htmlBeforeUsage(argv[0]);
+ usage(argv[0]);
+ htmlAfterUsage(argv[0]);
+ exit(EXIT_SUCCESS);
+ break;
+ }
+ SDEFAULT {
+ fprintf(stderr, "Not Supported Options: :%s\n", argv[i]);
+ usage(argv[0]);
+ exit(EXIT_FAILURE);
+ break;
+ }
+ SSWITCHEND;
+ }
+ }
+}
--- /dev/null
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <math.h>
+#include "../inc/config.h"
+#include "genUtil.h"
+#include "eosString.h"
+#include "File.h"
+#include "Memory.h"
+
+
+void
+init0(mrcImageDensityWeightedAreaCalcInfo* info)
+{
+ info->fptIn = NULL; info->flagIn = 0;
+ info->fptInDensity = NULL; info->flagInDensity = 0;
+ info->fptOut = NULL; info->flagOut = 0;
+ info->fptOutLabel = NULL; info->flagOutLabel = 0;
+ info->Neighbor = 8; info->flagNeighbor = 0;
+ info->fptconfigFile = NULL; info->flagconfigFile = 0;
+ info->mode = 0; info->flagmode = 0;
+}
+
+void
+init1(mrcImageDensityWeightedAreaCalcInfo* info)
+{
+ char s[1024];
+ int i;
+ if(!info->flagIn) {
+ stringGetFromFile(s, "In", stdin, stdout, 0);
+ info->In = stringGetNthWord(s, 1, " ,\t");
+ info->flagIn++;
+ }
+ if(info->flagIn) {
+ info->fptIn = fileOpen(info->In, "r");
+ }
+
+ if(!info->flagInDensity) {
+ stringGetFromFile(s, "InDensity", stdin, stdout, 0);
+ info->InDensity = stringGetNthWord(s, 1, " ,\t");
+ info->flagInDensity++;
+ }
+ if(info->flagInDensity) {
+ info->fptInDensity = fileOpen(info->InDensity, "r");
+ }
+
+ if(!info->flagOut) {
+ stringGetFromFile(s, "Out", stdin, stdout, 0);
+ info->Out = stringGetNthWord(s, 1, " ,\t");
+ info->flagOut++;
+ }
+ if(info->flagOut) {
+ info->fptOut = fileOpen(info->Out, "w");
+ }
+
+ if(info->flagOutLabel) {
+ info->fptOutLabel = fileOpen(info->OutLabel, "w");
+ }
+
+ if(info->flagNeighbor) {
+ }
+
+ if(info->flagconfigFile) {
+ info->fptconfigFile = fileOpen(info->configFile, "r");
+ }
+
+ if(info->flagmode) {
+ }
+
+}
+#ifdef KHOROS
+#include <stdio.h>
+#include "bootstrap.h"
+#include "dataserv.h"
+#include "datamanip.h"
+extern void func_usage_additions(void);
+extern void func_free_args(kexit_status status, kaddr client_data);
+extern void func_get_args(kform* pane);
+
+void
+func_usage_additions(void)
+{
+}
+void
+func_free_args(kexit_status status, kaddr client_data)
+{
+}
+void
+func_get_args(kform* pane)
+{
+}
+void
+khorosInit(int argc, char* argv[])
+{
+ char* eospath;
+ char panepath[1024];
+ FILE* fpt;
+
+ eospath = getenv("EOS_HOME");
+ sprintf(panepath, "%s/src/Tools/mrcImage/mrcImageDensityWeightedAreaCalc/src/mrcImageDensityWeightedAreaCalc.pane", eospath);
+ khoros_initialize(argc, argv, "EOS");
+ fpt = fopen(panepath, "r"); if(NULL!=fpt) {
+ fclose(fpt);
+ kclui_initialize(panepath, KGEN_NONE, "EOS", "mrcImageDensityWeightedAreaCalc",
+ func_usage_additions,
+ func_get_args,
+ func_free_args);
+ }
+}
+#endif /* KHOROS */
--- /dev/null
+/*
+# mrcImageDensityWeightedAreaCalc : $Revision$
+# $Date$
+# Created by $Author$
+# Usage : mrcImageDensityWeightedAreaCalc
+# Attention
+# $Loccker$
+# $State$
+#
+*/
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <math.h>
+#define GLOBAL_DECLARATION
+#include "../inc/config.h"
+
+#define DEBUG
+#include "genUtil.h"
+#include "mrcImage.h"
+#include "lmrcImageCalcArea.h"
+
+/*
+Example:
+typedef struct lmrcImageDensityWeightedAreaCalcInfo {
+ float a;
+ int b;
+} lmrcImageDensityWeightedAreaCalcInfo;
+
+typedef enum lmrcImageDensityWeightedAreaCalcMode {
+ a=0,
+ b=1
+} lmrcImageDensityWeightedAreaCalcMode;
+*/
+
+int
+main(int argc, char* argv[])
+{
+ mrcImage in;
+ mrcImage inDens;
+ mrcImage out;
+ mrcImage label;
+
+ mrcImageDensityWeightedAreaCalcInfo info;
+
+ init0(&info);
+ argCheck(&info, argc, argv);
+ init1(&info);
+
+ DEBUGPRINT("Program Start\n");
+
+ mrcFileRead(&in, info.In, "in main", 0);
+ mrcFileRead(&inDens, info.InDensity, "in main", 0);
+
+ lmrcImageCalcDensityWeightedArea(&out, &label, &in, &inDens, info.Neighbor, info.mode);
+
+ if(info.flagOutLabel) {
+ mrcFileWrite(&label, info.OutLabel, "in main", 0);
+ }
+ mrcFileWrite(&out, info.Out, "in main", 0);
+ exit(EXIT_SUCCESS);
+}
+
+void
+additionalUsage()
+{
+ fprintf(stderr, "----- Additional Usage -----\n");
+ fprintf(stderr, "-m \n");
+ fprintf(stderr, " 0: Sum of density\n");
+ fprintf(stderr, " 1: Transform top of 75 pecents of sum of density to 0.75\n");
+}
--- /dev/null
+<HTML>
+<HEAD>
+<TITLE>mrcImageDensityWeightedAreaCalc</TITLE>
+</HEAD>
+<BODY>
+<H1>mrcImageDensityWeightedAreaCalc</H1>
+<H2>Usage</H2>
+<PRE>
+Usage: mrcImageDensityWeightedAreaCalc
+Options:
+ [-i[nput] In (NULL ).as(inFile::mrcImage ) ] :Essential :Input:binary
+ [-d[ensity] InDensity (NULL ).as(inFile::mrcImage ) ] :Essential :Input:density
+ [-o[utput] Out (NULL ).as(outFile::mrcImage ) ] :Essential :Output:weightedArea
+ [-o[utput]L[abel] OutLabel (NULL ).as(outFile::mrcImage ) ] :Optional :Output:Label
+ [-n[eighbor] Neighbor (8 ).as(Integer ) ] :Optional :Neighbor:[6|8]
+ [-c[onfig] configFile (NULL ).as(inFile ) ] :Optional :ConfigurationFile
+ [-m[ode] mode (0 ).as(Integer ) ] :Optional :Mode
+----- Additional Usage -----
+-m
+ 0: Sum of density
+ 1: Transform top of 75 pecents of sum of density to 0.75
+</PRE>
+</BODY>
+</HTML>
--- /dev/null
+-F 4.3 1 0 52x1+0+0 +0+0 'Cantata' cantata
+ -M 1 1 52x1+0+0 +1+0 ' ' subform
+ -P 1 0 52x1+0+1 +0+0 ' ' mrcImageDensityWeightedAreaCalc
+ -D 1 0 9x1+0+0 'Options' _gui_options
+ -H 1 6x1+0+0 'License' 'license' $BOOTSTRAP/repos/license/License license
+ -E
+ -R 1 0 1 5x1+35+0 'Run' 'execute operation' $EOS/bin/mrcImageDensityWeightedAreaCalc
+ -H 1 5x1+41+0 'Help' 'help page' $EOS/src/Tools/mrcImage/mrcImageDensityWeightedAreaCalc/doc/mrcImageDensityWeightedAreaCalc.doc help
+ -Q 1 0 5.25x1+47+0 'Close'
+ -I 1 0 1 1 0 1 -1x1+1+1.500000 ' ' 'In' 'Input:binary' i
+ -I 1 0 1 1 0 1 -1x1+1+3.000000 ' ' 'InDensity' 'Input:density' d
+ -O 1 0 1 1 0 1 -1x1+1+4.500000 ' ' 'Out' 'Output:weightedArea' o
+ -O 1 0 1 0 0 1 -1x1+1+6.000000 ' ' 'OutLabel' 'Output:Label' oL
+ -i 1 0 1 0 0 -1x1+1+7.500000 0 0 8 0 0 'Neighbor' 'Neighbor:[6|8]' n
+ -I 1 0 1 0 0 1 -1x1+1+9.000000 ' ' 'configFile' 'ConfigurationFile' c
+ -i 1 0 1 0 0 -1x1+1+10.500000 0 0 0 0 0 'mode' 'Mode' m
+ -E
+ -E
+-E
--- /dev/null
+include ../../Config/Define.inc
+include ../../../Config/Define.inc
+include ../../../../Config/Define.inc
+include ../../../../../Config/Define.inc
+
+DATA=data/TEM_filter_sample
+
+all: help exec exec1
+
+help:
+ @echo "----- Help Message Check -----"
+ @../$(OSTYPE)/$(OBJECTNAME) -h
+
+exec:
+ @echo "----- Execution Check -----"
+ ../$(OSTYPE)/$(OBJECTNAME) -i $(DATA).bin3 -d $(DATA).mrc3 -o $(DATA)-8.densWA -oL $(DATA)-8.label -n 8 -m 0
+ ../$(OSTYPE)/$(OBJECTNAME) -i $(DATA).bin3 -d $(DATA).mrc3 -o $(DATA)-4.densWA -oL $(DATA)-4.label -n 4 -m 0
+ @echo "----- Calc check -----"
+
+exec1:
+ @echo "----- Execution Check -----"
+ ../$(OSTYPE)/$(OBJECTNAME) -i $(DATA).bin3 -d $(DATA).mrc3 -o $(DATA)-8-1.densWA -oL $(DATA)-8-1.label -n 8 -m 1
+ ../$(OSTYPE)/$(OBJECTNAME) -i $(DATA).bin3 -d $(DATA).mrc3 -o $(DATA)-4-1.densWA -oL $(DATA)-4-1.label -n 4 -m 1
+ @echo "----- Calc check -----"
+
+clean:
--- /dev/null
+../../../../../..//data/mrcImageDensityWeightedAreaCalc
\ No newline at end of file
--- /dev/null
+#include <stdio.h>
+#include <stdlib.h>
+#include "../inc/config.h"
+
+void
+usage(char* thisProgram)
+{
+ fprintf(stderr, "Usage: %s\n", thisProgram);
+ fprintf(stderr, "Options:\n");
+ fprintf(stderr, " [-i[nput] In (NULL ).as(inFile::mrcImage ) ] :Essential :Input:binary\n");
+ fprintf(stderr, " [-d[ensity] InDensity (NULL ).as(inFile::mrcImage ) ] :Essential :Input:density\n");
+ fprintf(stderr, " [-o[utput] Out (NULL ).as(outFile::mrcImage ) ] :Essential :Output:weightedArea\n");
+ fprintf(stderr, " [-o[utput]L[abel] OutLabel (NULL ).as(outFile::mrcImage ) ] :Optional :Output:Label\n");
+ fprintf(stderr, " [-n[eighbor] Neighbor (8 ).as(Integer ) ] :Optional :Neighbor:[6|8]\n");
+ fprintf(stderr, " [-c[onfig] configFile (NULL ).as(inFile ) ] :Optional :ConfigurationFile\n");
+ fprintf(stderr, " [-m[ode] mode (0 ).as(Integer ) ] :Optional :Mode\n");
+ additionalUsage();
+}
+
+void
+htmlBeforeUsage(char* thisProgram)
+{
+ fprintf(stderr, "<HTML>\n");
+ fprintf(stderr, "<HEAD>\n");
+ fprintf(stderr, "<TITLE>%s</TITLE>\n", thisProgram);
+ fprintf(stderr, "</HEAD>\n");
+ fprintf(stderr, "<BODY>\n");
+ fprintf(stderr, "<H1>%s</H1>\n", thisProgram);
+ fprintf(stderr, "<H2>Usage</H2>\n");
+ fprintf(stderr, "<PRE>\n");
+}
+
+void
+htmlAfterUsage(char* thisProgram)
+{
+ fprintf(stderr, "</PRE>\n");
+ fprintf(stderr, "</BODY>\n");
+ fprintf(stderr, "</HTML>\n");
+}
--- /dev/null
+#include <stdio.h>
+#include <stdlib.h>
+#include "../inc/config.h"
+
"-o","-o[utput]","Output:","Optional","1","1","Out","outFile::ASCII","stdout"
"-oGC","-o[utput]GC","Output:gc","Optional","1","1","OutGC","outFile::mrcImage","NULL"
"-oL","-o[utput]L[abel]","Output:Label","Optional","1","1","OutLabel","outFile::mrcImage","NULL"
-"-oP","-o[utput]P[eprimeter]","Output:Label","Optional","1","1","OutPerimeter","outFile::mrcImage","NULL"
+"-oP","-o[utput]P[eprimeter]","Output:Perimeter","Optional","1","1","OutPerimeter","outFile::mrcImage","NULL"
+"-oC","-o[utput]C[hainID]","Output:ChainID","Optional","1","1","OutChain","outFile::mrcImage","NULL"
"-oS","-o[utput]S[urfaceArea]","Output:SurfaceArea","Optional","1","1","OutSurfaceArea","outFile::mrcImage","NULL"
+"-oD","-o[utput]D[ensityWeightedArea]","Output:DensityWeightedArea","Optional","1","1","OutDensityWeightedArea","outFile::mrcImage","NULL"
"-n","-n[eighbor]","Neighbor: [4(0)|8 or 6(0)|18|26]","Optional","1","1","neighbor","Integer","0"
+"-d","-d[ensity]","Input:density","Optional","1","1","InDensity","inFile::mrcImage","NULL"
"-c","-c[onfig]","ConfigurationFile","Optional","1","1","configFile","inFile","NULL"
"-m","-m[ode]","Mode","Optional","1","1","mode","Integer","0"
char* OutPerimeter;
FILE* fptOutPerimeter;
+ long flagOutChain;
+ char* OutChain;
+ FILE* fptOutChain;
+
long flagOutSurfaceArea;
char* OutSurfaceArea;
FILE* fptOutSurfaceArea;
+ long flagOutDensityWeightedArea;
+ char* OutDensityWeightedArea;
+ FILE* fptOutDensityWeightedArea;
+
long flagneighbor;
long neighbor;
+ long flagInDensity;
+ char* InDensity;
+ FILE* fptInDensity;
+
long flagconfigFile;
char* configFile;
FILE* fptconfigFile;
}
SBREAK;
}
+ SCASE("oC") {
+ if(i+1<argc) {
+ info->OutChain = stringGetNthWord(argv[i+1], 1, " ,");
+ i++;
+ info->flagOutChain++;
+ } else {
+ usage(argv[0]);
+ exit(EXIT_FAILURE);
+ }
+ SBREAK;
+ }
SCASE("oS") {
if(i+1<argc) {
info->OutSurfaceArea = stringGetNthWord(argv[i+1], 1, " ,");
}
SBREAK;
}
+ SCASE("oD") {
+ if(i+1<argc) {
+ info->OutDensityWeightedArea = stringGetNthWord(argv[i+1], 1, " ,");
+ i++;
+ info->flagOutDensityWeightedArea++;
+ } else {
+ usage(argv[0]);
+ exit(EXIT_FAILURE);
+ }
+ SBREAK;
+ }
SCASE("n") {
if(i+1<argc) {
info->neighbor = stringGetNthIntegerData(argv[i+1], 1, " ,");
}
SBREAK;
}
+ SCASE("d") {
+ if(i+1<argc) {
+ info->InDensity = stringGetNthWord(argv[i+1], 1, " ,");
+ i++;
+ info->flagInDensity++;
+ } else {
+ usage(argv[0]);
+ exit(EXIT_FAILURE);
+ }
+ SBREAK;
+ }
SCASE("c") {
if(i+1<argc) {
info->configFile = stringGetNthWord(argv[i+1], 1, " ,");
info->fptOutGC = NULL; info->flagOutGC = 0;
info->fptOutLabel = NULL; info->flagOutLabel = 0;
info->fptOutPerimeter = NULL; info->flagOutPerimeter = 0;
+ info->fptOutChain = NULL; info->flagOutChain = 0;
info->fptOutSurfaceArea = NULL; info->flagOutSurfaceArea = 0;
+ info->fptOutDensityWeightedArea = NULL; info->flagOutDensityWeightedArea = 0;
info->neighbor = 0; info->flagneighbor = 0;
+ info->fptInDensity = NULL; info->flagInDensity = 0;
info->fptconfigFile = NULL; info->flagconfigFile = 0;
info->mode = 0; info->flagmode = 0;
}
info->fptOutPerimeter = fileOpen(info->OutPerimeter, "w");
}
+ if(info->flagOutChain) {
+ info->fptOutChain = fileOpen(info->OutChain, "w");
+ }
+
if(info->flagOutSurfaceArea) {
info->fptOutSurfaceArea = fileOpen(info->OutSurfaceArea, "w");
}
+ if(info->flagOutDensityWeightedArea) {
+ info->fptOutDensityWeightedArea = fileOpen(info->OutDensityWeightedArea, "w");
+ }
+
if(info->flagneighbor) {
}
+ if(info->flagInDensity) {
+ info->fptInDensity = fileOpen(info->InDensity, "r");
+ }
+
if(info->flagconfigFile) {
info->fptconfigFile = fileOpen(info->configFile, "r");
}
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);
}
[-o[utput] Out (stdout ).as(outFile::ASCII ) ] :Optional :Output:
[-o[utput]GC OutGC (NULL ).as(outFile::mrcImage ) ] :Optional :Output:gc
[-o[utput]L[abel] OutLabel (NULL ).as(outFile::mrcImage ) ] :Optional :Output:Label
- [-o[utput]P[eprimeter]OutPerimeter (NULL ).as(outFile::mrcImage ) ] :Optional :Output:Label
+ [-o[utput]P[eprimeter]OutPerimeter (NULL ).as(outFile::mrcImage ) ] :Optional :Output:Perimeter
+ [-o[utput]C[hainID] OutChain (NULL ).as(outFile::mrcImage ) ] :Optional :Output:ChainID
[-o[utput]S[urfaceArea]OutSurfaceArea (NULL ).as(outFile::mrcImage ) ] :Optional :Output:SurfaceArea
[-n[eighbor] neighbor (0 ).as(Integer ) ] :Optional :Neighbor: [4(0)|8 or 6(0)|18|26]
[-c[onfig] configFile (NULL ).as(inFile ) ] :Optional :ConfigurationFile
-R 1 0 1 5x1+35+0 'Run' 'execute operation' $EOS/bin/mrcImageFeatureCalc
-H 1 5x1+41+0 'Help' 'help page' $EOS/src/Tools/mrcImage/mrcImageFeatureCalc/doc/mrcImageFeatureCalc.doc help
-Q 1 0 5.25x1+47+0 'Close'
+<<<<<<< HEAD
-I 1 0 1 1 0 1 -1x1+1+1.500000 ' ' 'In' 'Input:binary(BandW)' i
-I 1 0 1 0 0 1 -1x1+1+3.000000 ' ' 'Ref' 'Input:reference(density)' r
-O 1 0 1 0 0 1 -1x1+1+4.500000 ' ' 'Out' 'Output:' o
-i 1 0 1 0 0 -1x1+1+12.000000 0 0 0 0 0 'neighbor' 'Neighbor: [4(0)|8 or 6(0)|18|26]' n
-I 1 0 1 0 0 1 -1x1+1+13.500000 ' ' 'configFile' 'ConfigurationFile' c
-i 1 0 1 0 0 -1x1+1+15.000000 0 0 0 0 0 'mode' 'Mode' m
+=======
+ -I 1 0 1 1 0 1 -1x1+1+1.500000 ' ' 'In' 'Input:binary' i
+ -O 1 0 1 0 0 1 -1x1+1+3.000000 ' ' 'Out' 'Output:' o
+ -O 1 0 1 0 0 1 -1x1+1+4.500000 ' ' 'OutGC' 'Output:gc' oGC
+ -O 1 0 1 0 0 1 -1x1+1+6.000000 ' ' 'OutLabel' 'Output:Label' oL
+ -O 1 0 1 0 0 1 -1x1+1+7.500000 ' ' 'OutPerimeter' 'Output:Perimeter' oP
+ -O 1 0 1 0 0 1 -1x1+1+9.000000 ' ' 'OutChain' 'Output:ChainID' oC
+ -O 1 0 1 0 0 1 -1x1+1+10.500000 ' ' 'OutSurfaceArea' 'Output:SurfaceArea' oS
+ -O 1 0 1 0 0 1 -1x1+1+12.000000 ' ' 'OutDensityWeightedArea' 'Output:DensityWeightedArea' oD
+ -i 1 0 1 0 0 -1x1+1+13.500000 0 0 0 0 0 'neighbor' 'Neighbor: [4(0)|8 or 6(0)|18|26]' n
+ -I 1 0 1 0 0 1 -1x1+1+15.000000 ' ' 'InDensity' 'Input:density' d
+ -I 1 0 1 0 0 1 -1x1+1+16.500000 ' ' 'configFile' 'ConfigurationFile' c
+ -i 1 0 1 0 0 -1x1+1+18.000000 0 0 0 0 0 'mode' 'Mode' m
+>>>>>>> 9b5e7fe08ff1571ad6c1b9f06620a39cc0fd91eb
-E
-E
-E
fprintf(stderr, " [-o[utput] Out (stdout ).as(outFile::ASCII ) ] :Optional :Output:\n");
fprintf(stderr, " [-o[utput]GC OutGC (NULL ).as(outFile::mrcImage ) ] :Optional :Output:gc\n");
fprintf(stderr, " [-o[utput]L[abel] OutLabel (NULL ).as(outFile::mrcImage ) ] :Optional :Output:Label\n");
- fprintf(stderr, " [-o[utput]P[eprimeter]OutPerimeter (NULL ).as(outFile::mrcImage ) ] :Optional :Output:Label\n");
+ fprintf(stderr, " [-o[utput]P[eprimeter]OutPerimeter (NULL ).as(outFile::mrcImage ) ] :Optional :Output:Perimeter\n");
+ fprintf(stderr, " [-o[utput]C[hainID] OutChain (NULL ).as(outFile::mrcImage ) ] :Optional :Output:ChainID\n");
fprintf(stderr, " [-o[utput]S[urfaceArea]OutSurfaceArea (NULL ).as(outFile::mrcImage ) ] :Optional :Output:SurfaceArea\n");
+ fprintf(stderr, " [-o[utput]D[ensityWeightedArea]OutDensityWeightedArea(NULL ).as(outFile::mrcImage ) ] :Optional :Output:DensityWeightedArea\n");
fprintf(stderr, " [-n[eighbor] neighbor (0 ).as(Integer ) ] :Optional :Neighbor: [4(0)|8 or 6(0)|18|26]\n");
+ fprintf(stderr, " [-d[ensity] InDensity (NULL ).as(inFile::mrcImage ) ] :Optional :Input:density\n");
fprintf(stderr, " [-c[onfig] configFile (NULL ).as(inFile ) ] :Optional :ConfigurationFile\n");
fprintf(stderr, " [-m[ode] mode (0 ).as(Integer ) ] :Optional :Mode\n");
additionalUsage();