This repository is a base of Eos.
リビジョン | 8bfe92901b5284d94760603d9736da69c929525c (tree) |
---|---|
日時 | 2015-03-23 19:09:23 |
作者 | Takuo Yasunaga <yasunaga@bio....> |
コミッター | Takuo Yasunaga |
new:
mrcImageAutoTriming
modified:
mrcImage.h
@@ -0,0 +1 @@ | ||
1 | +../sbin/MachineIndependent | |
\ No newline at end of file |
@@ -412,6 +412,8 @@ typedef struct mrcImageInformation { | ||
412 | 412 | long flagrmax; |
413 | 413 | double RMS; /* Root mean square */ |
414 | 414 | int mode; |
415 | + mrcImageParaTypeRealCoord sdOfAllAxis; | |
416 | + mrcImageParaTypeRealCoord aveOfAllAxis; | |
415 | 417 | |
416 | 418 | /* For Search Area */ |
417 | 419 | int flagXrange; |
@@ -441,7 +443,8 @@ typedef enum mrcImageInformationMode { | ||
441 | 443 | meanOfCentre = 4, |
442 | 444 | meanOfSparse = 5, |
443 | 445 | meanOf2DEdgeY = 6, |
444 | - RMSofAllPixels = 7 | |
446 | + RMSofAllPixels = 7, | |
447 | + sdOfAllAxis = 8 | |
445 | 448 | } mrcImageInformationMode; |
446 | 449 | |
447 | 450 | /* |
@@ -103,343 +103,6 @@ | ||
103 | 103 | <H2>Information from source codes</H2> |
104 | 104 | </A> |
105 | 105 | <PRE> |
106 | -../src/fftn.c: | |
107 | - | |
108 | -../src/lmrcFETnormalizeBySD.c: | |
109 | - | |
110 | -../src/lmrcFFTExpression.c: | |
111 | - | |
112 | -../src/lmrcFFTFGconj.c: | |
113 | - | |
114 | -../src/lmrcFFTFxG.c: | |
115 | - | |
116 | -../src/lmrcFFTInfo.c: | |
117 | - | |
118 | -../src/lmrcImage3DPad.c: | |
119 | - | |
120 | -../src/lmrcImage3DWindowing.c: | |
121 | - | |
122 | -../src/lmrcImageAddValue.c: | |
123 | - | |
124 | -../src/lmrcImageAsProbability.c: | |
125 | - | |
126 | -../src/lmrcImageAverage.c: | |
127 | - | |
128 | -../src/lmrcImageBandPassFilter.c: | |
129 | - | |
130 | -../src/lmrcImageBilateralFilter.c: | |
131 | - | |
132 | -../src/lmrcImageBinarization.c: | |
133 | - | |
134 | -../src/lmrcImageBottomHatTransform.c: | |
135 | - | |
136 | -../src/lmrcImageBoundaryInfo.c: | |
137 | - | |
138 | -../src/lmrcImageCTFCompensation.c: | |
139 | - | |
140 | -../src/lmrcImageCTFDetermination.c: | |
141 | - | |
142 | -../src/lmrcImageCTFObservation.c: | |
143 | - | |
144 | -../src/lmrcImageCTFSN.c: | |
145 | - | |
146 | -../src/lmrcImageCVE.c: | |
147 | - | |
148 | -../src/lmrcImageCalcArea.c: | |
149 | - | |
150 | -../src/lmrcImageCenterGet.c: | |
151 | - | |
152 | -../src/lmrcImageCentre.c: | |
153 | - | |
154 | -../src/lmrcImageClosing.c: | |
155 | - | |
156 | -../src/lmrcImageClusterAnalysis.c: | |
157 | - | |
158 | -../src/lmrcImageCommonLine.c: | |
159 | - | |
160 | -../src/lmrcImageConnection.c: | |
161 | - | |
162 | -../src/lmrcImageConnectivityNumberCalc.c: | |
163 | - | |
164 | -../src/lmrcImageContourSurface.c: | |
165 | - | |
166 | -../src/lmrcImageContraction.c: | |
167 | - | |
168 | -../src/lmrcImageCorrelation.c: | |
169 | - $lmrcImageEuclidDistanceCalc: Calculate Euclid distance between two images $ | |
170 | - $arg: in1: input mrcImage1 $ | |
171 | - $arg: in2: input mrcImage2 $ | |
172 | - $arg: mode: input int $ | |
173 | - $mode: 0 Sum of SQR $ | |
174 | - $mode: 1 Distance $ | |
175 | - $return: EuclidDistance $ | |
176 | - | |
177 | -../src/lmrcImageCorrelationPVM.c: | |
178 | - | |
179 | -../src/lmrcImageCorrelationWithCTFCompensation.c: | |
180 | - | |
181 | -../src/lmrcImageCorrelationinSpace.c: | |
182 | - | |
183 | -../src/lmrcImageCrystalCreate.c: | |
184 | - | |
185 | -../src/lmrcImageDataMaxAndMinGetByImage.c: | |
186 | - | |
187 | -../src/lmrcImageDataStraightCopy.c: | |
188 | - | |
189 | -../src/lmrcImageDeconvolution.c: | |
190 | - | |
191 | -../src/lmrcImageDensity.c: | |
192 | - | |
193 | -../src/lmrcImageDensityInverse.c: | |
194 | - | |
195 | -../src/lmrcImageDensityNormalizationByImage.c: | |
196 | - | |
197 | -../src/lmrcImageDifferential.c: | |
198 | - | |
199 | -../src/lmrcImageDilation.c: | |
200 | - | |
201 | -../src/lmrcImageDistanceConversion.c: | |
202 | - | |
203 | -../src/lmrcImageEdge.c: | |
204 | - | |
205 | -../src/lmrcImageEdgeAverage.c: | |
206 | - | |
207 | -../src/lmrcImageEdgeEnhancement.c: | |
208 | - | |
209 | -../src/lmrcImageErosion.c: | |
210 | - | |
211 | -../src/lmrcImageFFT.c: | |
212 | - | |
213 | -../src/lmrcImageFOMCalc.c: | |
214 | - | |
215 | -../src/lmrcImageFeatureExtraction.c: | |
216 | - | |
217 | -../src/lmrcImageFeatureExtractionCoOccurrence.c: | |
218 | - | |
219 | -../src/lmrcImageFeatureExtractionRunLength.c: | |
220 | - | |
221 | -../src/lmrcImageFilterCreate.c: | |
222 | - | |
223 | -../src/lmrcImageFirstNoiseReductionByRelaxation.c: | |
224 | - | |
225 | -../src/lmrcImageFloating.c: | |
226 | - | |
227 | -../src/lmrcImageFourierNeighborCorrelation.c: | |
228 | - | |
229 | -../src/lmrcImageFourierPowerSpectrum.c: | |
230 | - | |
231 | -../src/lmrcImageFourierShellCorrelation.c: | |
232 | - | |
233 | -../src/lmrcImageHighPassFilter.c: | |
234 | - | |
235 | -../src/lmrcImageHighlighting.c: | |
236 | - | |
237 | -../src/lmrcImageHoughTransform.c: | |
238 | - | |
239 | -../src/lmrcImageLabeling.c: | |
240 | - | |
241 | -../src/lmrcImageLogicalOperation.c: | |
242 | - | |
243 | -../src/lmrcImageLowPassFilter.c: | |
244 | - | |
245 | -../src/lmrcImageMasking.c: | |
246 | - | |
247 | -../src/lmrcImageMaxDataGet.c: | |
248 | - | |
249 | -../src/lmrcImageMirroring.c: | |
250 | - $lmrcImageMirroring: (mrcImage* out, mrcImage* in, lmrcImageMirroring mode) $ | |
251 | - | |
252 | -../src/lmrcImageModeChange.c: | |
253 | - | |
254 | -../src/lmrcImageModelCreate.c: | |
255 | - | |
256 | -../src/lmrcImageMontageCreate.c: | |
257 | - | |
258 | -../src/lmrcImageMorphology.c: | |
259 | - | |
260 | -../src/lmrcImageMove.c: | |
261 | - | |
262 | -../src/lmrcImageMultiCTFCompensation.c: | |
263 | - | |
264 | -../src/lmrcImageMultiplying.c: | |
265 | - | |
266 | -../src/lmrcImageNegativeLaplacian.c: | |
267 | - | |
268 | -../src/lmrcImageNoiseCreate.c: | |
269 | - | |
270 | -../src/lmrcImageNormalizing.c: | |
271 | - | |
272 | -../src/lmrcImageOneLineSimilarityCalc.c: | |
273 | - | |
274 | -../src/lmrcImageOpening.c: | |
275 | - | |
276 | -../src/lmrcImagePad.c: | |
277 | - | |
278 | -../src/lmrcImagePartImageSegmentation.c: | |
279 | - | |
280 | -../src/lmrcImagePixelSummationOfProbabilityGetByImage.c: | |
281 | - | |
282 | -../src/lmrcImagePosterization.c: | |
283 | - | |
284 | -../src/lmrcImagePrewitt.c: | |
285 | - | |
286 | -../src/lmrcImageProjection.c: | |
287 | - | |
288 | -../src/lmrcImageProportionalDensityLevelSetByImage.c: | |
289 | - | |
290 | -../src/lmrcImageROI2D.c: | |
291 | - | |
292 | -../src/lmrcImageROI3D.c: | |
293 | - | |
294 | -../src/lmrcImageROInotChangeHeaderLength.c: | |
295 | - | |
296 | -../src/lmrcImageRadialDistribution.c: | |
297 | - | |
298 | -../src/lmrcImageRhoFiltering.c: | |
299 | - | |
300 | -../src/lmrcImageRoberts.c: | |
301 | - | |
302 | -../src/lmrcImageRotation.c: | |
303 | - | |
304 | -../src/lmrcImageSSDA.c: | |
305 | - | |
306 | -../src/lmrcImageSamplingUnitChange.c: | |
307 | - | |
308 | -../src/lmrcImageSecondNoiseReductionByRelaxation.c: | |
309 | - | |
310 | -../src/lmrcImageSecondNoiseReductionByRelaxationDijDimensionSet.c: | |
311 | - | |
312 | -../src/lmrcImageSecondNoiseReductionByRelaxationDijValueCalculate.c: | |
313 | - | |
314 | -../src/lmrcImageSecondNoiseReductionByRelaxationDijValueSet.c: | |
315 | - | |
316 | -../src/lmrcImageSecondNoiseReductionByRelaxationQValueSet.c: | |
317 | - | |
318 | -../src/lmrcImageSecondNoiseReductionByRelaxationRValueSet.c: | |
319 | - | |
320 | -../src/lmrcImageShapePCA.c: | |
321 | - | |
322 | -../src/lmrcImageShift.c: | |
323 | - | |
324 | -../src/lmrcImageShrink.c: | |
325 | - | |
326 | -../src/lmrcImageSigmaCalculate.c: | |
327 | - | |
328 | -../src/lmrcImageSinogram.c: | |
329 | - | |
330 | -../src/lmrcImageSinogramCorrelation.c: | |
331 | - | |
332 | -../src/lmrcImageSinogramFFT.c: | |
333 | - | |
334 | -../src/lmrcImageSmoothing.c: | |
335 | - | |
336 | -../src/lmrcImageSobel.c: | |
337 | - | |
338 | -../src/lmrcImageSolventFlattening.c: | |
339 | - | |
340 | -../src/lmrcImageSpatialFrequencyFilter.c: | |
341 | - | |
342 | -../src/lmrcImageSphere.c: | |
343 | - | |
344 | -../src/lmrcImageSplit.c: | |
345 | - | |
346 | -../src/lmrcImageStack.c: | |
347 | - | |
348 | -../src/lmrcImageStudentCalculate.c: | |
349 | - | |
350 | -../src/lmrcImageSubtractionCalc.c: | |
351 | - | |
352 | -../src/lmrcImageSummationCalculate.c: | |
353 | - | |
354 | -../src/lmrcImageSymmetryFind.c: | |
355 | - | |
356 | -../src/lmrcImageTfunction.c: | |
357 | - | |
358 | -../src/lmrcImageToneReversal.c: | |
359 | - | |
360 | -../src/lmrcImageTopHatTransform.c: | |
361 | - | |
362 | -../src/lmrcImageTrans.c: | |
363 | - | |
364 | -../src/lmrcImageTransformDescartesIntoPolar.c: | |
365 | - | |
366 | -../src/lmrcImageTriming.c: | |
367 | - | |
368 | -../src/lmrcImageVolumeCalc.c: | |
369 | - | |
370 | -../src/lmrcImageWindowing.c: | |
371 | - | |
372 | -../src/lmrcImagesFTest.c: | |
373 | - | |
374 | -../src/lmrcImagesStatDataGet.c: | |
375 | - | |
376 | -../src/lmrcImagesTTest.c: | |
377 | - | |
378 | -../src/lmrcImagesVarianceAnalysis.c: | |
379 | - | |
380 | -../src/lmrcImagesVarianceMap.c: | |
381 | - | |
382 | -../src/lmrcSinogramFET.c: | |
383 | - | |
384 | -../src/lmrcSinogramFETPCA.c: | |
385 | - | |
386 | -../src/lmrcSinogramFETcalcWeight.c: | |
387 | - | |
388 | -../src/lmrcSinogramFETcorrelationMap.c: | |
389 | - | |
390 | -../src/lmrcSinogramFETnormalizedMap.c: | |
391 | - | |
392 | -../src/lmrcSinogramFETreferredCorrelation.c: | |
393 | - | |
394 | -../src/lmrcSinogramFETsmoothParameterMatching.c: | |
395 | - | |
396 | -../src/mrcImageCheckFFT.c: | |
397 | - | |
398 | -../src/mrcImageCheckSameSize.c: | |
399 | - | |
400 | -../src/mrcImageCopy.c: | |
401 | - | |
402 | -../src/mrcImageDataSet.c: | |
403 | - | |
404 | -../src/mrcImageError.c: | |
405 | - | |
406 | -../src/mrcImageGet.c: | |
407 | - | |
408 | -../src/mrcImageGetPixels.c: | |
409 | - | |
410 | -../src/mrcImageInfo.c: | |
411 | - | |
412 | -../src/mrcImageInit.c: | |
413 | - | |
414 | -../src/mrcImageOperation.c: | |
415 | - | |
416 | -../src/mrcImagePVM.c: | |
417 | - | |
418 | -../src/mrcImagePrint.c: | |
419 | - | |
420 | -../src/mrcImageRead.c: | |
421 | - | |
422 | -../src/mrcImageSectionGet.c: | |
423 | - | |
424 | -../src/mrcImageSectionSet.c: | |
425 | - | |
426 | -../src/mrcImageSet.c: | |
427 | - | |
428 | -../src/mrcImageTailer.c: | |
429 | - | |
430 | -../src/mrcImageToIntImage.c: | |
431 | - | |
432 | -../src/mrcImageUtil.c: | |
433 | - | |
434 | -../src/mrcImageUtilityforVariance.c: | |
435 | - | |
436 | -../src/mrcImageWrite.c: | |
437 | - | |
438 | -../src/mrcImageWrite2.c: | |
439 | - | |
440 | -../src/mrcImagefuncmin.c: | |
441 | - | |
442 | -../src/mrcRefUtil.c: | |
443 | 106 | </PRE> |
444 | 107 | <HR> |
445 | 108 | <A NAME="include"> |
@@ -860,6 +523,8 @@ typedef struct mrcImageInformation { | ||
860 | 523 | long flagrmax; |
861 | 524 | double RMS; /* Root mean square */ |
862 | 525 | int mode; |
526 | + mrcImageParaTypeRealCoord sdOfAllAxis; | |
527 | + mrcImageParaTypeRealCoord aveOfAllAxis; | |
863 | 528 | |
864 | 529 | /* For Search Area */ |
865 | 530 | int flagXrange; |
@@ -889,7 +554,8 @@ typedef enum mrcImageInformationMode { | ||
889 | 554 | meanOfCentre = 4, |
890 | 555 | meanOfSparse = 5, |
891 | 556 | meanOf2DEdgeY = 6, |
892 | - RMSofAllPixels = 7 | |
557 | + RMSofAllPixels = 7, | |
558 | + sdOfAllAxis = 8 | |
893 | 559 | } mrcImageInformationMode; |
894 | 560 | |
895 | 561 | /* |
@@ -412,6 +412,8 @@ typedef struct mrcImageInformation { | ||
412 | 412 | long flagrmax; |
413 | 413 | double RMS; /* Root mean square */ |
414 | 414 | int mode; |
415 | + mrcImageParaTypeRealCoord sdOfAllAxis; | |
416 | + mrcImageParaTypeRealCoord aveOfAllAxis; | |
415 | 417 | |
416 | 418 | /* For Search Area */ |
417 | 419 | int flagXrange; |
@@ -441,7 +443,8 @@ typedef enum mrcImageInformationMode { | ||
441 | 443 | meanOfCentre = 4, |
442 | 444 | meanOfSparse = 5, |
443 | 445 | meanOf2DEdgeY = 6, |
444 | - RMSofAllPixels = 7 | |
446 | + RMSofAllPixels = 7, | |
447 | + sdOfAllAxis = 8 | |
445 | 448 | } mrcImageInformationMode; |
446 | 449 | |
447 | 450 | /* |
@@ -17,14 +17,19 @@ static char __sccs_id[] = "@(#)mrcImageCopy ver1.1; Date:96/05/08 @(#)"; | ||
17 | 17 | void |
18 | 18 | lmrcImageCopy(mrcImage* dst, mrcImage* src, mrcImageParaTypeRealCoord to) |
19 | 19 | { |
20 | - mrcImageParaTypeReal ix, iy, iz; | |
20 | + mrcImageParaTypeInteger ix, iy, iz; | |
21 | 21 | double data; |
22 | + mrcImageParaTypeInteger x, y, z; | |
23 | + int k; | |
22 | 24 | |
23 | - for(iz=0; iz<src->HeaderN.z; iz++) { | |
24 | - for(iy=0; iy<src->HeaderN.y; iy++) { | |
25 | - for(ix=0; ix<src->HeaderN.x; ix++) { | |
26 | - mrcPixelDataGet(src, (mrcImageParaTypeReal)ix, (mrcImageParaTypeReal)iy, (mrcImageParaTypeReal)iz, &data, mrcPixelRePart, mrcPixelHowNearest); | |
27 | - mrcPixelDataSet(dst, (mrcImageParaTypeReal)to.x + ix, (mrcImageParaTypeReal)to.y + iy, (mrcImageParaTypeReal)to.z + iz, data, mrcPixelRePart); | |
25 | + for(iz=0; iz<dst->HeaderN.z; iz++) { | |
26 | + for(iy=0; iy<dst->HeaderN.y; iy++) { | |
27 | + for(ix=0; ix<dst->HeaderN.x; ix++) { | |
28 | + x = (int)(ix - to.x + 0.5); | |
29 | + y = (int)(iy - to.y + 0.5); | |
30 | + z = (int)(iz - to.z + 0.5); | |
31 | + mrcPixelDataGet(src, x, y, z, &data, mrcPixelRePart, mrcPixelHowNearest); | |
32 | + mrcPixelDataSet(dst, ix, iy, iz, data, mrcPixelRePart); | |
28 | 33 | } |
29 | 34 | } |
30 | 35 | } |
@@ -938,6 +938,65 @@ lmrcImageInformation(mrcImageInformation* info, mrcImage* img) | ||
938 | 938 | |
939 | 939 | break; |
940 | 940 | } |
941 | + case sdOfAllAxis: { | |
942 | + DEBUGPRINT("SDofAllAxis\n"); | |
943 | + double weight, weight2; | |
944 | + double sumx, sumy, sumz; | |
945 | + double avex, avey, avez; | |
946 | + double dat2; | |
947 | + | |
948 | + sumx = 0; | |
949 | + sumy = 0; | |
950 | + sumz = 0; | |
951 | + weight = 0; | |
952 | + count = img->HeaderN.x*img->HeaderN.y*img->HeaderN.z; | |
953 | + for(iz=0; iz<img->HeaderN.z; iz++) { | |
954 | + for(iy=0; iy<img->HeaderN.y; iy++) { | |
955 | + for(ix=0; ix<img->HeaderN.x; ix++) { | |
956 | + mrcPixelDataGet(img, | |
957 | + (mrcImageParaTypeReal)ix, | |
958 | + (mrcImageParaTypeReal)iy, | |
959 | + (mrcImageParaTypeReal)iz, | |
960 | + &data, mrcPixelRePart, mrcPixelHowNearest); | |
961 | + sumx += ix*data; | |
962 | + sumy += iy*data; | |
963 | + sumz += iz*data; | |
964 | + weight += data; | |
965 | + } | |
966 | + } | |
967 | + } | |
968 | + | |
969 | + avex = sumx/weight; | |
970 | + avey = sumy/weight; | |
971 | + avez = sumz/weight; | |
972 | + | |
973 | + sumx = 0; | |
974 | + sumy = 0; | |
975 | + sumz = 0; | |
976 | + weight2 = 0; | |
977 | + for(iz=0; iz<img->HeaderN.z; iz++) { | |
978 | + for(iy=0; iy<img->HeaderN.y; iy++) { | |
979 | + for(ix=0; ix<img->HeaderN.x; ix++) { | |
980 | + mrcPixelDataGet(img, | |
981 | + (mrcImageParaTypeReal)ix, | |
982 | + (mrcImageParaTypeReal)iy, | |
983 | + (mrcImageParaTypeReal)iz, | |
984 | + &data, mrcPixelRePart, mrcPixelHowNearest); | |
985 | + sumx += SQR((ix - avex)*data); | |
986 | + sumy += SQR((iy - avey)*data); | |
987 | + sumz += SQR((iz - avez)*data); | |
988 | + } | |
989 | + } | |
990 | + } | |
991 | + | |
992 | + info->sdOfAllAxis.x = sqrt(sumx/weight); | |
993 | + info->sdOfAllAxis.y = sqrt(sumy/weight); | |
994 | + info->sdOfAllAxis.z = sqrt(sumz/weight); | |
995 | + info->aveOfAllAxis.x = avex; | |
996 | + info->aveOfAllAxis.y = avey; | |
997 | + info->aveOfAllAxis.z = avez; | |
998 | + break; | |
999 | + } | |
941 | 1000 | default:{ |
942 | 1001 | fprintf(stderr, "Not supported mode :%d", info->mode); |
943 | 1002 | exit(EXIT_FAILURE); |
@@ -568,3 +568,11 @@ WORLDNAME=Tools | ||
568 | 568 | WORLDNAME=Tools |
569 | 569 | WORLDNAME=Tools |
570 | 570 | WORLDNAME=Tools |
571 | +WORLDNAME=Tools | |
572 | +WORLDNAME=Tools | |
573 | +WORLDNAME=Tools | |
574 | +WORLDNAME=Tools | |
575 | +WORLDNAME=Tools | |
576 | +WORLDNAME=Tools | |
577 | +WORLDNAME=Tools | |
578 | +WORLDNAME=Tools |
@@ -51,6 +51,7 @@ mrcImageAutoRotationAverage \ | ||
51 | 51 | mrcImageAutoRotationCorrelation \ |
52 | 52 | mrcImageAutoRotationCorrelation3D \ |
53 | 53 | mrcImageAutoRotationCorrelationResultPrint \ |
54 | +mrcImageAutoTriming \ | |
54 | 55 | mrcImageAverage \ |
55 | 56 | mrcImageBandPassFilter \ |
56 | 57 | mrcImageBilateralFilter \ |
@@ -0,0 +1,34 @@ | ||
1 | +include ../../Config/Define.inc | |
2 | +include ../../../Config/Define.inc | |
3 | +include ../../../../Config/Define.inc | |
4 | +include ../../../../../Config/Define.inc | |
5 | + | |
6 | +all: help exec exec2 exec3 | |
7 | + | |
8 | +help: | |
9 | + @echo "----- Help Message Check -----" | |
10 | + @../$(OSTYPE)/$(OBJECTNAME) -h | |
11 | + | |
12 | +exec: | |
13 | + @echo "----- Execution Check -----" | |
14 | + ../$(OSTYPE)/$(OBJECTNAME) -i data/test.bin -o data/test.area -l data/test.label | |
15 | + @echo "----- Calc check -----" | |
16 | + | |
17 | +exec2: | |
18 | + @echo "----- Execution Check -----" | |
19 | + ../$(OSTYPE)/$(OBJECTNAME) -i data/test2.bin -o data/test2.area -l data/test2.label | |
20 | + @echo "----- Calc check -----" | |
21 | + | |
22 | +exec3: | |
23 | + @echo "----- Execution Check -----" | |
24 | + ../$(OSTYPE)/$(OBJECTNAME) -i data/test3.bin -o data/test3.area -l data/test3.label | |
25 | + @echo "----- Calc check -----" | |
26 | + | |
27 | +clean: | |
28 | + | |
29 | +init: | |
30 | + pdb2mrc -i data/121p.pdb2 -o data/test.mrc -nx 32 -ny 32 -nz 32 -dx 2 -dy 2 -dz 2 -Sx -32 -Sy -32 -Sz -32 -sig 1.6 -w 1.0 | |
31 | + mrcImageBinalization -i data/test.mrc -o data/test.bin -m 32 | |
32 | + mrcImageBinalization -i data/test2.mrc -o data/test2.bin -m 33 | |
33 | + mrcImageErosion -i data/test2.bin -o data/test3.bin | |
34 | + |
@@ -0,0 +1 @@ | ||
1 | +../../../../../..//data/mrcImageAreaCalc | |
\ No newline at end of file |
@@ -0,0 +1,4 @@ | ||
1 | +OBJECTNAME = mrcImageAutoTriming | |
2 | +EXTRA_LIB = | |
3 | +EXTRA_CCOPTS = | |
4 | +EXTRA_INC = |
@@ -0,0 +1,12 @@ | ||
1 | +# OptionControlFile | |
2 | +# FileFormat | |
3 | +"-i","-i[nput]","Input:mrcImage","Essential","1","1","In","inFile::mrcImage","NULL" | |
4 | +"-o","-o[utput]","Output:mrcImage","Essential","1","1","Out","outFile::mrcImage","NULL" | |
5 | +"-O","-O[utput]","OutputParams:YAML","Optional","1","1","OutParam","outFile::YAML","stdout" | |
6 | +"-EAMode","-E[uler]A[ngle]Mode","EulerAngle","Optional","1","1","EAMode","String","ZONS" | |
7 | +"-Rot1","-Rot[ation]1","Rot1","Optional","3","1","Rot1Min","Real","-5","1","Rot1Max","Real","5","3","Rot1Delta","Real","1" | |
8 | +"-Rot2","-Rot[ation]2","Rot2","Optional","3","1","Rot2Min","Real","-5","1","Rot2Max","Real","5","3","Rot2Delta","Real","1" | |
9 | +"-Rot3","-Rot[ation]3","Rot3","Optional","3","1","Rot3Min","Real","-5","1","Rot3Max","Real","5","3","Rot3Delta","Real","1" | |
10 | +"-M","-M[ode]","Iterpolation Mode","Optional","1","1","InterpolationMode","Integer","0" | |
11 | +"-c","-c[onfig]","ConfigurationFile","Optional","1","1","configFile","inFile","NULL" | |
12 | +"-m","-m[ode]","Mode","Optional","1","1","mode","Integer","0" |
@@ -0,0 +1,115 @@ | ||
1 | +include ../../../Config/Define.inc | |
2 | +include ../../Config/Define.inc | |
3 | +include ../Config/Define.inc | |
4 | +include Config/Define.inc | |
5 | + | |
6 | +all: | |
7 | + cd src; make all; cd .. | |
8 | + | |
9 | +install: | |
10 | + cd src; make install; cd .. | |
11 | + | |
12 | + | |
13 | +putSF: | |
14 | + if [ -f private ] ; \ | |
15 | + then \ | |
16 | + echo "$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME) is private"; \ | |
17 | + else \ | |
18 | + cvs -z4 -d:ext:$$USER@$$EOS_SOURCEFORGE commit || cvs -z4 -d:ext:$$USER@$$EOS_SOURCEFORGE import src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME); \ | |
19 | + fi | |
20 | + | |
21 | +put: | |
22 | + cd src; make put; cd .. | |
23 | + | |
24 | +clean: | |
25 | + cd src; make clean; cd .. | |
26 | + | |
27 | +depend: | |
28 | + cd src; make depend; cd .. | |
29 | + | |
30 | +check: | |
31 | + @if [ ! -d $(EOS_HOME)/hostdepend/$(OSTYPE)/src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/src/$(OSTYPE) ] ; then \ | |
32 | + echo making directory; \ | |
33 | + mkdir -p $(EOS_HOME)/hostdepend/$(OSTYPE)/src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/src/$(OSTYPE); \ | |
34 | + fi | |
35 | + ln -sf ../../../../../hostdepend/$(OSTYPE)/src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/src/$(OSTYPE) src/$(OSTYPE); | |
36 | + @$(RM) src/Makefile | |
37 | + @echo "New src/Makefile" | |
38 | + @$(CP) ../../../Config/Template/$(WORLDNAME)Template.Dir/src/Makefile src/Makefile | |
39 | + @cd src; touch $(OSTYPE)/.Depend; make depend | |
40 | + | |
41 | +update: | |
42 | + @if [ ! -d $(EOS_HOME)/hostdepend/$(OSTYPE)/src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/src/$(OSTYPE) ] ; then \ | |
43 | + echo making directory; \ | |
44 | + mkdir -p $(EOS_HOME)/hostdepend/$(OSTYPE)/src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/src/$(OSTYPE); \ | |
45 | + fi | |
46 | + ln -sf ../../../../../hostdepend/$(OSTYPE)/src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/src/$(OSTYPE) src/$(OSTYPE); | |
47 | + @$(RM) src/Makefile | |
48 | + @echo "New src/Makefile" | |
49 | + @$(CP) ../../../Config/Template/$(WORLDNAME)Template.Dir/src/Makefile src/Makefile | |
50 | + @cd src; touch $(OSTYPE)/.Depend; echo "Y" | make update | |
51 | + | |
52 | +cvsupdate:: | |
53 | + cvs -d $(EOS_CVSROOT) update -d | |
54 | + | |
55 | +cvscommit:: | |
56 | + cvs -d $(EOS_CVSROOT) commit | |
57 | + | |
58 | +backup: | |
59 | + @cd ../../../..; \ | |
60 | + echo $(OBJECTNAME) ; \ | |
61 | + tar uvf ${EOS_HOME}/backup/EosBase.tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/Config ; \ | |
62 | + tar uvf ${EOS_HOME}/backup/EosBase.tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/Makefile ;\ | |
63 | + tar uvf ${EOS_HOME}/backup/EosBase.tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/.[A-z]* ; \ | |
64 | + tar uvf ${EOS_HOME}/backup/EosBase.tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/inc ; \ | |
65 | + tar uvf ${EOS_HOME}/backup/EosBase.tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/doc; \ | |
66 | + tar uvf ${EOS_HOME}/backup/EosBase.tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/src/wish; \ | |
67 | + tar uvf ${EOS_HOME}/backup/EosBase.tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/src/[A-z]*.[A-z]*; \ | |
68 | + tar uvf ${EOS_HOME}/backup/EosBase.tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/src/.[A-z]*; \ | |
69 | + tar uvf ${EOS_HOME}/backup/EosBase.tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/src/Makefile | |
70 | + | |
71 | +backup-all: | |
72 | + @cd ../../../..; \ | |
73 | + echo $(OBJECTNAME) ; \ | |
74 | + tar rvf ${EOS_HOME}/backup/EosBase.tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/Config ; \ | |
75 | + tar rvf ${EOS_HOME}/backup/EosBase.tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/Makefile ;\ | |
76 | + tar rvf ${EOS_HOME}/backup/EosBase.tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/.[A-z]* ; \ | |
77 | + tar rvf ${EOS_HOME}/backup/EosBase.tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/inc ; \ | |
78 | + tar rvf ${EOS_HOME}/backup/EosBase.tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/doc; \ | |
79 | + tar rvf ${EOS_HOME}/backup/EosBase.tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/src/wish; \ | |
80 | + tar rvf ${EOS_HOME}/backup/EosBase.tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/src/[A-z]*.[A-z]*; \ | |
81 | + tar rvf ${EOS_HOME}/backup/EosBase.tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/src/.[A-z]*; \ | |
82 | + tar rvf ${EOS_HOME}/backup/EosBase.tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/src/Makefile | |
83 | + | |
84 | +distribute: | |
85 | + cd ../../../..; \ | |
86 | + echo $(OBJECTNAME) ; \ | |
87 | + tar uvf ${EOS_HOME}/distribute/src.$(OSTYPE).tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/Config ; \ | |
88 | + tar uvf ${EOS_HOME}/distribute/src.$(OSTYPE).tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/Makefile ;\ | |
89 | + tar uvf ${EOS_HOME}/distribute/src.$(OSTYPE).tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/.[A-z]* ; \ | |
90 | + tar uvf ${EOS_HOME}/distribute/src.$(OSTYPE).tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/inc ; \ | |
91 | + tar uvf ${EOS_HOME}/distribute/src.$(OSTYPE).tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/doc; \ | |
92 | + tar uvf ${EOS_HOME}/distribute/src.$(OSTYPE).tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/src/wish; \ | |
93 | + tar uvf ${EOS_HOME}/distribute/src.$(OSTYPE).tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/src/[A-z]*.[A-z]*; \ | |
94 | + tar uvf ${EOS_HOME}/distribute/src.$(OSTYPE).tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/src/.[A-z]*; \ | |
95 | + tar uvf ${EOS_HOME}/distribute/src.$(OSTYPE).tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/src/Makefile ; \ | |
96 | + tar uvf ${EOS_HOME}/distribute/src.$(OSTYPE).tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/src/$(OSTYPE) | |
97 | + | |
98 | +distribute-all: | |
99 | + @cd ../../../..; \ | |
100 | + echo $(OBJECTNAME) ; \ | |
101 | + tar rvf ${EOS_HOME}/distribute/src.$(OSTYPE).tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/Config ; \ | |
102 | + tar rvf ${EOS_HOME}/distribute/src.$(OSTYPE).tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/Makefile ;\ | |
103 | + tar rvf ${EOS_HOME}/distribute/src.$(OSTYPE).tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/.[A-z]* ; \ | |
104 | + tar rvf ${EOS_HOME}/distribute/src.$(OSTYPE).tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/inc ; \ | |
105 | + tar rvf ${EOS_HOME}/distribute/src.$(OSTYPE).tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/doc; \ | |
106 | + tar rvf ${EOS_HOME}/distribute/src.$(OSTYPE).tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/src/wish; \ | |
107 | + tar rvf ${EOS_HOME}/distribute/src.$(OSTYPE).tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/src/[A-z]*.[A-z]*; \ | |
108 | + tar rvf ${EOS_HOME}/distribute/src.$(OSTYPE).tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/src/.[A-z]*; \ | |
109 | + tar rvf ${EOS_HOME}/distribute/src.$(OSTYPE).tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/src/Makefile ; \ | |
110 | + tar rvf ${EOS_HOME}/distribute/src.$(OSTYPE).tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/src/$(OSTYPE) | |
111 | + | |
112 | +eosintroduce: | |
113 | + ${EOS_HOME}/sbin/eosintroduce ${WORLDNAME} ${CLASSNAME} ${OBJECTNAME} ./ | |
114 | + | |
115 | +include Config/Target.inc |
@@ -0,0 +1,2 @@ | ||
1 | +install: | |
2 | + cd ../src; make install-doc; cd ../doc |
@@ -0,0 +1,6 @@ | ||
1 | +#ifndef CONFIG_H | |
2 | +#define CONFIG_H | |
3 | + | |
4 | +#include "../inc/mrcImageAutoTriming.h" | |
5 | + | |
6 | +#endif /* CONFIG_H */ |
@@ -0,0 +1,83 @@ | ||
1 | +#ifndef MRCIMAGEAUTOTRIMING_H | |
2 | +#define MRCIMAGEAUTOTRIMING_H | |
3 | +#include <stdio.h> | |
4 | +#include <stdlib.h> | |
5 | + | |
6 | +#define OPTION_FLAG '-' | |
7 | +#define OPTION_FLAG_POS (0) | |
8 | +#define OPTION_POS (1) | |
9 | + | |
10 | + | |
11 | + | |
12 | + | |
13 | +typedef struct mrcImageAutoTrimingInfo { | |
14 | + long flagRedirect; | |
15 | + | |
16 | + long flagIn; | |
17 | + char* In; | |
18 | + FILE* fptIn; | |
19 | + | |
20 | + long flagOut; | |
21 | + char* Out; | |
22 | + FILE* fptOut; | |
23 | + | |
24 | + long flagOutParam; | |
25 | + char* OutParam; | |
26 | + FILE* fptOutParam; | |
27 | + | |
28 | + long flagEAMode; | |
29 | + char* EAMode; | |
30 | + | |
31 | + long flagRot1Min; | |
32 | + float Rot1Min; | |
33 | + | |
34 | + long flagRot1Max; | |
35 | + float Rot1Max; | |
36 | + | |
37 | + long flagRot1Delta; | |
38 | + float Rot1Delta; | |
39 | + | |
40 | + long flagRot2Min; | |
41 | + float Rot2Min; | |
42 | + | |
43 | + long flagRot2Max; | |
44 | + float Rot2Max; | |
45 | + | |
46 | + long flagRot2Delta; | |
47 | + float Rot2Delta; | |
48 | + | |
49 | + long flagRot3Min; | |
50 | + float Rot3Min; | |
51 | + | |
52 | + long flagRot3Max; | |
53 | + float Rot3Max; | |
54 | + | |
55 | + long flagRot3Delta; | |
56 | + float Rot3Delta; | |
57 | + | |
58 | + long flagInterpolationMode; | |
59 | + long InterpolationMode; | |
60 | + | |
61 | + long flagconfigFile; | |
62 | + char* configFile; | |
63 | + FILE* fptconfigFile; | |
64 | + | |
65 | + long flagmode; | |
66 | + long mode; | |
67 | + | |
68 | +} mrcImageAutoTrimingInfo; | |
69 | +#ifdef __cplusplus | |
70 | +extern "C" { | |
71 | +#endif | |
72 | +extern void argCheck(mrcImageAutoTrimingInfo* info, int argc, char* avgv[]); | |
73 | +extern void khorosInit(int argc, char* avgv[]); | |
74 | +extern void init0(mrcImageAutoTrimingInfo* info); | |
75 | +extern void init1(mrcImageAutoTrimingInfo* info); | |
76 | +extern void usage(char* usage); | |
77 | +extern void additionalUsage(void); | |
78 | +extern void htmlBeforeUsage(char* usage); | |
79 | +extern void htmlAfterUsage(char* usage); | |
80 | +#ifdef __cplusplus | |
81 | +}; | |
82 | +#endif | |
83 | +#endif /* MRCIMAGEAUTOTRIMING_H */ |
@@ -0,0 +1,427 @@ | ||
1 | +include ../Config/Define.inc | |
2 | +include ../../Config/Define.inc | |
3 | +include ../../../Config/Define.inc | |
4 | +include ../../../../Config/Define.inc | |
5 | + | |
6 | +EOSHOME=../../../../../ | |
7 | +DSTDIR=$(EOSHOME)/bin | |
8 | +DSTDOC=$(EOSHOME)/doc | |
9 | +DSTTAR=$(EOSHOME)/tar | |
10 | + | |
11 | +INCFILES = | |
12 | + | |
13 | +LIBFILES = \ | |
14 | + $(LIBPREFIX)EosObjects$(LIBSUFFIX) | |
15 | + | |
16 | +LIBFILESDEBUG = \ | |
17 | + $(LIBPREFIX)EosObjects.debug$(LIBSUFFIX) | |
18 | + | |
19 | +SRCC = \ | |
20 | + $(OBJECTNAME).c \ | |
21 | + init.c \ | |
22 | + argCheck.c \ | |
23 | + usage.c \ | |
24 | + util.c \ | |
25 | + | |
26 | +SRCCXX = \ | |
27 | + $(OBJECTNAME).cc \ | |
28 | + init.cc \ | |
29 | + argCheck.cc \ | |
30 | + usage.cc \ | |
31 | + util.cc \ | |
32 | + | |
33 | +MODULES = \ | |
34 | + $(OBJECTNAME).o \ | |
35 | + init.o \ | |
36 | + argCheck.o \ | |
37 | + usage.o \ | |
38 | + util.o \ | |
39 | + | |
40 | +REALMODULES = \ | |
41 | + $(OSTYPE)/$(OBJECTNAME).o \ | |
42 | + $(OSTYPE)/init.o \ | |
43 | + $(OSTYPE)/argCheck.o \ | |
44 | + $(OSTYPE)/usage.o \ | |
45 | + $(OSTYPE)/util.o | |
46 | + | |
47 | +MODULESDEBUG = \ | |
48 | + $(OBJECTNAME).debugo \ | |
49 | + init.debugo \ | |
50 | + argCheck.debugo \ | |
51 | + usage.debugo \ | |
52 | + util.debugo \ | |
53 | + | |
54 | +REALMODULESDEBUG = \ | |
55 | + $(OSTYPE)/$(OBJECTNAME).debugo \ | |
56 | + $(OSTYPE)/init.debugo \ | |
57 | + $(OSTYPE)/argCheck.debugo \ | |
58 | + $(OSTYPE)/usage.debugo \ | |
59 | + $(OSTYPE)/util.debugo | |
60 | + | |
61 | + | |
62 | +all: $(OSTYPE)/$(OBJECTNAME) | |
63 | + if [ ! -L $(OSTYPE) ] ; then \ | |
64 | + moveHostdependent; \ | |
65 | + fi | |
66 | + | |
67 | +debug: $(OSTYPE)/$(OBJECTNAME).debug | |
68 | + | |
69 | +cudagdb: $(OSTYPE)/$(OBJECTNAME).cudagdb | |
70 | + | |
71 | + | |
72 | +$(OSTYPE)/$(OBJECTNAME):: | |
73 | + @$(RM) -f $(OSTYPE)/Makefile ; \ | |
74 | + $(CP) $(EOS_HOME)/src/Config/Template/$(WORLDNAME)Template.Dir/src/ARCH/Makefile $(OSTYPE)/Makefile ; \ | |
75 | + cd $(OSTYPE); \ | |
76 | + $(MAKE) $(OBJECTNAME) WORLDNAME=$(WORLDNAME) CLASSNAME=$(CLASSNAME) OBJECTNAME=$(OBJECTNAME) | |
77 | + | |
78 | +$(OSTYPE)/$(OBJECTNAME).debug:: | |
79 | + @$(RM) -f $(OSTYPE)/Makefile ; \ | |
80 | + $(CP) $(EOS_HOME)/src/Config/Template/$(WORLDNAME)Template.Dir/src/ARCH/Makefile $(OSTYPE)/Makefile ; \ | |
81 | + cd $(OSTYPE); \ | |
82 | + $(MAKE) $(OBJECTNAME).debug WORLDNAME=$(WORLDNAME) CLASSNAME=$(CLASSNAME) OBJECTNAME=$(OBJECTNAME) | |
83 | + | |
84 | +$(OSTYPE)/$(OBJECTNAME).cudagdb:: | |
85 | + @$(RM) -f $(OSTYPE)/Makefile ; \ | |
86 | + $(CP) $(EOS_HOME)/src/Config/Template/$(WORLDNAME)Template.Dir/src/ARCH/Makefile $(OSTYPE)/Makefile ; \ | |
87 | + cd $(OSTYPE); \ | |
88 | + $(MAKE) $(OBJECTNAME).cudagdb WORLDNAME=$(WORLDNAME) CLASSNAME=$(CLASSNAME) OBJECTNAME=$(OBJECTNAME) | |
89 | + | |
90 | +cvsupdate:: | |
91 | + cvs -d $(EOS_CVSROOT) update -d | |
92 | + | |
93 | +cvscommit:: | |
94 | + cvs -d $(EOS_CVSROOT) commit | |
95 | + | |
96 | +edit: | |
97 | + @if [ -r $(OBJECTNAME).c ]; \ | |
98 | + then \ | |
99 | + sccsEdit $(OBJECTNAME).c; \ | |
100 | + else \ | |
101 | + echo "Source files are already editable"; \ | |
102 | + fi | |
103 | + @if [ -r wish/$(OBJECTNAME).wish ]; \ | |
104 | + then \ | |
105 | + cd wish; sccsEdit $(OBJECTNAME).wish; \ | |
106 | + else \ | |
107 | + echo "Source files (wish) are already editable."; \ | |
108 | + fi | |
109 | + @if [ -r ruby/$(OBJECTNAME).rb ]; \ | |
110 | + then \ | |
111 | + cd ruby; sccsEdit $(OBJECTNAME).rb; \ | |
112 | + else \ | |
113 | + echo "Source files (ruby) are already editable."; \ | |
114 | + fi | |
115 | + @if [ -r perl/$(OBJECTNAME).pl ]; \ | |
116 | + then \ | |
117 | + cd perl; sccsEdit $(OBJECTNAME).pl ; \ | |
118 | + else \ | |
119 | + echo "Source files (perl) are already editable."; \ | |
120 | + fi | |
121 | + @if [ -r ../Config/OptionControlFile ]; \ | |
122 | + then \ | |
123 | + cd ../Config; sccsEdit OptionControlFile; \ | |
124 | + else \ | |
125 | + echo "OptionControlFile are already editable."; \ | |
126 | + fi | |
127 | + | |
128 | +unedit: | |
129 | + @if [ -w $(OBJECTNAME).c ]; \ | |
130 | + then \ | |
131 | + sccsUnedit $(OBJECTNAME).c; \ | |
132 | + else \ | |
133 | + echo "Source files are not editable"; \ | |
134 | + fi | |
135 | + @if [ -w wish/$(OBJECTNAME).wish ]; \ | |
136 | + then \ | |
137 | + cd wish; sccsUnedit $(OBJECTNAME).wish; \ | |
138 | + else \ | |
139 | + echo "Source files (wish) are not editable."; \ | |
140 | + fi | |
141 | + @if [ -w ruby/$(OBJECTNAME).rb]; \ | |
142 | + then \ | |
143 | + cd ruby; sccsUnedit $(OBJECTNAME).rb; \ | |
144 | + else \ | |
145 | + echo "Source files (ruby) are not editable."; \ | |
146 | + fi | |
147 | + @if [ -w perl/$(OBJECTNAME).pl ]; \ | |
148 | + then \ | |
149 | + cd perl; sccsUnedit $(OBJECTNAME).pl ; \ | |
150 | + else \ | |
151 | + echo "Source files (ruby) are not editable."; \ | |
152 | + fi | |
153 | + @if [ -w ../Config/OptionControlFile ]; \ | |
154 | + then \ | |
155 | + cd ../Config; sccsUnedit OptionControlFile; \ | |
156 | + else \ | |
157 | + echo "OptionControlFile are not editable."; \ | |
158 | + fi | |
159 | + | |
160 | +report: | |
161 | + @if [ -r $(OBJECTNAME).c ]; \ | |
162 | + then \ | |
163 | + sccsReport $(OBJECTNAME).c; \ | |
164 | + else \ | |
165 | + echo "Source files are already editable"; \ | |
166 | + fi | |
167 | + @if [ -r wish/$(OBJECTNAME).wish ]; \ | |
168 | + then \ | |
169 | + cd wish; sccsReport $(OBJECTNAME).wish; \ | |
170 | + else \ | |
171 | + echo "Source files (wish) are already editable."; \ | |
172 | + fi | |
173 | + @if [ -r ruby/$(OBJECTNAME).rb ]; \ | |
174 | + then \ | |
175 | + cd ruby; sccsReport $(OBJECTNAME).rb; \ | |
176 | + else \ | |
177 | + echo "Source files (ruby) are already editable."; \ | |
178 | + fi | |
179 | + @if [ -r perl/$(OBJECTNAME).pl ] ; \ | |
180 | + then \ | |
181 | + cd perl; sccsReport $(OBJECTNAME).pl ; \ | |
182 | + else \ | |
183 | + echo "Source files (perl) are already editable."; \ | |
184 | + fi | |
185 | + @if [ -r ../Config/OptionControlFile ]; \ | |
186 | + then \ | |
187 | + cd ../Config; sccsReport OptionControlFile; \ | |
188 | + else \ | |
189 | + echo "OptionControlFile are already editable."; \ | |
190 | + fi | |
191 | + | |
192 | +clean : | |
193 | + rm -f *.debugo $(OSTYPE)/*.debugo *.cudagdbo $(OSTYPE)/*.cudagdbo *.o $(OSTYPE)/*.o *.linkinfo $(OSTYPE)/*.linkinfo \ | |
194 | + $(OSTYPE)/$(OBJECTNAME) $(OSTYPE)/*.$(OSTYPE) \ | |
195 | + $(OSTYPE)/$(OBJECTNAME).debug $(OSTYPE)/*.$(OSTYPE).debug \ | |
196 | + $(OSTYPE)/$(OBJECTNAME).cudagdb $(OSTYPE)/*.$(OSTYPE).cudagdb \ | |
197 | + $(OSTYPE)/$(OBJECTNAME).linkinfo $(OSTYPE)/*.$(OSTYPE).linkinfo \ | |
198 | + *.bak *.$(OSTYPE) core | |
199 | + | |
200 | +install: install-bin install-doc install-wish install-ruby install-shell install-perl | |
201 | + @if [ dummy$(KHOROS_KENGOBJ) != dummy ] ; \ | |
202 | + then \ | |
203 | + if [ -x $(KHOROS_KGENOBJ) ] ; \ | |
204 | + then \ | |
205 | + make install-khoros ; \ | |
206 | + fi; \ | |
207 | + fi | |
208 | + | |
209 | +install-bin:$(DSTDIR)/$(OSTYPE)/$(OBJECTNAME) | |
210 | + | |
211 | +$(DSTDIR)/$(OSTYPE)/$(OBJECTNAME):$(OSTYPE)/$(OBJECTNAME) $(DSTDIR)/$(OBJECTNAME) | |
212 | + @echo ---- Installing to bin | |
213 | + @echo $(DSTDIR)/$(OSTYPE)/$(OBJECTNAME) | |
214 | + @if [ ! -d $(DSTDIR)/$(OSTYPE) ]; \ | |
215 | + then \ | |
216 | + mkdir $(DSTDIR)/$(OSTYPE); \ | |
217 | + fi | |
218 | + @if [ -x $(OSTYPE)/$(OBJECTNAME) ]; \ | |
219 | + then \ | |
220 | + echo "Compilation is complete"; \ | |
221 | + $(RM) -f $(DSTDIR)/$(OSTYPE)/$(OBJECTNAME); \ | |
222 | + $(CD) $(OSTYPE); $(INSTALL) -m 555 $(OBJECTNAME) ../$(DSTDIR)/$(OSTYPE); \ | |
223 | + $(CHMOD) 555 ../$(DSTDIR)/$(OSTYPE)/$(OBJECTNAME); \ | |
224 | + else \ | |
225 | + echo "Compilation is incomplete. $(OBJECTNAME)"; \ | |
226 | + fi | |
227 | + @echo ---- end of bin | |
228 | + | |
229 | +install-wish: | |
230 | + @if [ -d wish ]; \ | |
231 | + then \ | |
232 | + echo "---- Tcl/Tk file Install"; \ | |
233 | + if [ ! -d $(DSTDIR)/wish/$(OBJECTNAME) ]; \ | |
234 | + then \ | |
235 | + mkdir $(DSTDIR)/wish/$(OBJECTNAME) ; \ | |
236 | + fi ; \ | |
237 | + $(CP) -f wish/* $(DSTDIR)/wish/$(OBJECTNAME); \ | |
238 | + $(CHMOD) 555 $(DSTDIR)/wish/$(OBJECTNAME)/* ;\ | |
239 | + touch $(DSTDIR)/wish/$(OBJECTNAME)/tclIndex;\ | |
240 | + $(CHMOD) 666 $(DSTDIR)/wish/$(OBJECTNAME)/tclIndex;\ | |
241 | + echo "---- Tcl/Tk file Installed";\ | |
242 | + fi | |
243 | + | |
244 | +install-ruby: | |
245 | + @if [ -d ruby ]; \ | |
246 | + then \ | |
247 | + echo "---- Ruby/Tk file Install"; \ | |
248 | + if [ ! -d $(DSTDIR)/ruby/$(OBJECTNAME) ]; \ | |
249 | + then \ | |
250 | + mkdir $(DSTDIR)/ruby/$(OBJECTNAME) ; \ | |
251 | + fi ; \ | |
252 | + $(CP) -f ruby/* $(DSTDIR)/ruby/$(OBJECTNAME); \ | |
253 | + $(CHMOD) 555 $(DSTDIR)/ruby/$(OBJECTNAME)/* ; \ | |
254 | + echo "---- Ruby/Tk file Installed"; \ | |
255 | + fi | |
256 | + | |
257 | +install-perl: | |
258 | + @if [ -d perl ]; \ | |
259 | + then \ | |
260 | + echo "---- Perl/Tk file Install"; \ | |
261 | + if [ ! -d $(DSTDIR)/perl/$(OBJECTNAME) ]; \ | |
262 | + then \ | |
263 | + mkdir $(DSTDIR)/perl/$(OBJECTNAME) ; \ | |
264 | + fi; \ | |
265 | + $(CP) -f perl/* $(DSTDIR)/perl/$(OBJECTNAME); \ | |
266 | + $(CHMOD) 555 $(DSTDIR)/perl/$(OBJECTNAME)/* ; \ | |
267 | + echo "---- Perl/Tk file Installed"; \ | |
268 | + fi | |
269 | + | |
270 | +install-shell: | |
271 | + @if [ ! -d $(DSTDIR)/shell/$(OBJECTNAME) ]; \ | |
272 | + then \ | |
273 | + mkdir $(DSTDIR)/shell/$(OBJECTNAME) ; \ | |
274 | + fi | |
275 | + @if [ -d shell ]; \ | |
276 | + then \ | |
277 | + echo "---- Shell file Install"; \ | |
278 | + if [ ! -d $(DSTDIR)/shell/$(OBJECTNAME) ]; \ | |
279 | + then \ | |
280 | + mkdir $(DSTDIR)/shell/$(OBJECTNAME) ; \ | |
281 | + fi ; \ | |
282 | + $(CP) -f shell/* $(DSTDIR)/shell/$(OBJECTNAME); \ | |
283 | + $(CHMOD) 555 $(DSTDIR)/shell/$(OBJECTNAME)/*; \ | |
284 | + echo "---- Shell file Installed"; \ | |
285 | + fi | |
286 | + | |
287 | +install-khoros: | |
288 | + @echo Installing to khoros | |
289 | + @if [ ! -d ../../../../../objects/script/$(OBJECTNAME) -a -f $(KHOROS_KGENOBJ) ]; \ | |
290 | + then \ | |
291 | + echo kgenobj;\ | |
292 | + $(KHOROS_KGENOBJ) -tb Eos -oname $(OBJECTNAME) -type script -pane -cantata true -cat Eos -subcat $(CLASSNAME) -description $(OBJECTNAME) -bname $(OBJECTNAME) -form -lang ksh ; \ | |
293 | + fi | |
294 | + @if [ ! -d ../../../../../objects/script/$(OBJECTNAME) -a -f $(KHOROS_KSET) ]; \ | |
295 | + then \ | |
296 | + $(KHOROS_KSET) -tb Eos -oname $(OBJECTNAME) -icon $(OBJECTNAME) ; \ | |
297 | + fi | |
298 | + @if [ -d ../../../../../objects/script/$(OBJECTNAME) -a -f $(KHOROS_KSET) ]; \ | |
299 | + then \ | |
300 | + $(CHMOD) -R 775 ../../../../../objects/script/$(OBJECTNAME) ; \ | |
301 | + if [ $? ] ; \ | |
302 | + then \ | |
303 | + echo "-- setting khoros ---" ; \ | |
304 | + if [ -d ../../../../../objects/script/$(OBJECTNAME)/uis/ ] ; \ | |
305 | + then \ | |
306 | + $(CD) ../../../../../objects/script/$(OBJECTNAME)/uis/ ; \ | |
307 | + $(RM) -f $(OBJECTNAME).pane ; \ | |
308 | + $(LN) -s ../../../../src/Tools/$(CLASSNAME)/$(OBJECTNAME)/src/$(OBJECTNAME).pane $(OBJECTNAME).pane; \ | |
309 | + $(CD) ../../ ; \ | |
310 | + $(CHMOD) -R 555 $(OBJECTNAME); \ | |
311 | + else \ | |
312 | + echo "../../../../../objects/script/$(OBJECTNAME)/uis/ does not exist."; \ | |
313 | + fi ; \ | |
314 | + else \ | |
315 | + echo "Failed !!: Cannot chage mode in installing $(OBJECTNAME) to khoros system"; \ | |
316 | + fi ; \ | |
317 | + echo "-- end of khoros-installing"; \ | |
318 | + fi | |
319 | + | |
320 | +install-doc: html | |
321 | + @if [ ! -d $(DSTDOC)/SmallTools ]; \ | |
322 | + then \ | |
323 | + mkdir $(DSTDOC)/SmallTools ;\ | |
324 | + fi | |
325 | + @if [ -f $(DSTDOC)/SmallTools/$(OBJECTNAME).html ]; \ | |
326 | + then \ | |
327 | + $(RM) -f $(DSTDOC)/SmallTools/$(OBJECTNAME).html ;\ | |
328 | + fi | |
329 | + @$(CP) $(OBJECTNAME).html $(DSTDOC)/SmallTools/$(OBJECTNAME).html | |
330 | + @$(CHMOD) 444 $(DSTDOC)/SmallTools/$(OBJECTNAME).html | |
331 | + @if [ -f ../doc/*.html ]; \ | |
332 | + then \ | |
333 | + $(CP) ../doc/*.html $(DSTDOC)/SmallTools/ ;\ | |
334 | + fi | |
335 | + @$(CHMOD) 444 $(DSTDOC)/SmallTools/$(OBJECTNAME).html | |
336 | + @if [ -f $(DSTDOC)/SmallTools/Makefile ]; \ | |
337 | + then \ | |
338 | + cd $(DSTDOC)/SmallTools; $(MAKE); \ | |
339 | + fi | |
340 | + | |
341 | +html: $(OBJECTNAME).html | |
342 | + | |
343 | +configFileRead: | |
344 | + @ctrl2configFileRead $(CLASSNAME) $(OBJECTNAME) ../Config/OptionControlFile | |
345 | + | |
346 | +$(OBJECTNAME).html: $(OSTYPE)/$(OBJECTNAME) | |
347 | + @echo creating html | |
348 | + @$(OSTYPE)/$(OBJECTNAME) -html 2> $(OBJECTNAME).html.tmp | |
349 | + @sed -e s/$(OSTYPE)\\/// $(OBJECTNAME).html.tmp > $(OBJECTNAME).html | |
350 | + @$(RM) $(OBJECTNAME).html.tmp | |
351 | + | |
352 | +$(DSTDIR)/$(OBJECTNAME): $(OSTYPE)/$(OBJECTNAME) | |
353 | + @ln -s -f ../sbin/MachineIndependent $@ | |
354 | + | |
355 | +depend:: | |
356 | + @echo dependency checking now | |
357 | + @if [ ! -L $(OSTYPE) ] ; then \ | |
358 | + moveHostdependent; \ | |
359 | + fi | |
360 | + rm -f $(OSTYPE)/.Depend | |
361 | + #echo C | |
362 | + @if [ -f $(OBJECTNAME).c ] ; \ | |
363 | + then \ | |
364 | + echo "dependency: *.c"; \ | |
365 | + echo $(DEPENDCOMMAND) $(INCLUDEDIR) $(EXTRA_INC) $(EXTRA_DEFINE) *.c ; \ | |
366 | + $(DEPENDCOMMAND) $(INCLUDEDIR) $(EXTRA_INC) $(EXTRA_DEFINE) *.c >> $(OSTYPE)/.Depend ; \ | |
367 | + fi | |
368 | + #echo CC | |
369 | + @if [ -f $(OBJECTNAME).cc ] ; \ | |
370 | + then \ | |
371 | + echo "dependency: *.cc"; \ | |
372 | + echo $(DEPENDCOMMAND) $(INCLUDEDIR) $(EXTRA_INC) $(EXTRA_DEFINE) $(EXTRA_CCOPTS) *.cc ; \ | |
373 | + $(DEPENDCOMMAND) $(INCLUDEDIR) $(EXTRA_INC) $(EXTRA_DEFINE) $(EXTRA_CCOPTS) *.cc >> $(OSTYPE)/.Depend ; \ | |
374 | + fi | |
375 | + @if [ -f $(OBJECTNAME).ccm ] ; \ | |
376 | + then \ | |
377 | + echo "dependency: *.ccm"; \ | |
378 | + echo $(DEPENDCOMMAND) $(INCLUDEDIR) $(EXTRA_INC) $(EXTRA_DEFINE) $(EXTRA_CCOPTS) *.ccm ; \ | |
379 | + $(DEPENDCOMMAND) $(INCLUDEDIR) $(EXTRA_INC) $(EXTRA_DEFINE) $(EXTRA_CCOPTS) *.ccm >> $(OSTYPE)/.Depend ; \ | |
380 | + fi | |
381 | + @if [ -f $(OBJECTNAME).cu ] ; \ | |
382 | + then \ | |
383 | + echo "dependency: *.cu"; \ | |
384 | + echo $(DEPENDCOMMAND) $(INCLUDEDIR) $(EXTRA_INC) $(EXTRA_DEFINE) $(EXTRA_CCOPTS) *.cu ; \ | |
385 | + $(DEPENDCOMMAND) $(INCLUDEDIR) $(EXTRA_INC) $(EXTRA_DEFINE) $(EXTRA_CCOPTS) *.cu >> $(OSTYPE)/.Depend ; \ | |
386 | + fi | |
387 | + | |
388 | +update:../Config/OptionControlFile | |
389 | + maketool $(CLASSNAME) $(OBJECTNAME) update | |
390 | + | |
391 | +changeName:: | |
392 | + | |
393 | +Test:$(OSTYPE)/$(OBJECTNAME) TestDir | |
394 | + @if [ -f test/Makefile ] ; \ | |
395 | + then \ | |
396 | + cd test; make ; \ | |
397 | + else \ | |
398 | + echo "No test Makefile"; \ | |
399 | + fi | |
400 | + | |
401 | +TestDir:: | |
402 | + @if [ ! -d test ] ; \ | |
403 | + then \ | |
404 | + echo "Creating test dir"; \ | |
405 | + mkdir test; \ | |
406 | + fi | |
407 | + @if [ ! -f test/Makefile ] ; \ | |
408 | + then \ | |
409 | + echo "Creating Makefile"; \ | |
410 | + cd test; \ | |
411 | + protoTestMakefileCreate; \ | |
412 | + fi | |
413 | + @if [ ! -d test/data ]; \ | |
414 | + then \ | |
415 | + mkdir $(EOSHOME)/data/$(OBJECTNAME); \ | |
416 | + cd test; \ | |
417 | + ln -sf ../$(EOSHOME)/data/$(OBJECTNAME) data; \ | |
418 | + fi | |
419 | + | |
420 | +tar:: | |
421 | + cd $(DSTTAR); tar cvf Tools.$(CLASSNAME).$(OBJECTNAME).tar ../bin/$(OBJECTNAME) \ | |
422 | + ../bin/*/$(OBJECTNAME).* \ | |
423 | + ../src/Tools/$(CLASSNAME)/$(OBJECTNAME) \ | |
424 | + ; gzip Tools.$(CLASSNAME).$(OBJECTNAME).tar | |
425 | + | |
426 | +-include $(OSTYPE)/.Depend | |
427 | +-include ../Config/Target.inc |
@@ -0,0 +1 @@ | ||
1 | +../../../../../hostdepend/X86MAC64/src/Tools/mrcImage/mrcImageAutoTriming/src/X86MAC64 | |
\ No newline at end of file |
@@ -0,0 +1,180 @@ | ||
1 | +#include <stdio.h> | |
2 | +#include <stdlib.h> | |
3 | +#include <string.h> | |
4 | +#include <math.h> | |
5 | +#include "../inc/config.h" | |
6 | +#include "genUtil.h" | |
7 | +#include "String.h" | |
8 | +#include "File.h" | |
9 | +#include "Memory.h" | |
10 | + | |
11 | + | |
12 | +void | |
13 | +argCheck(mrcImageAutoTrimingInfo* info, int argc, char* argv[]) | |
14 | +{ | |
15 | + long i; | |
16 | + char s[1024]; | |
17 | + FILE* fpt; | |
18 | + | |
19 | + if(NULL==(fpt=fopen(".EosLog", "a+"))) { | |
20 | + | |
21 | + } else { | |
22 | + for(i=0; i<argc; i++) { | |
23 | + fprintf(fpt, "%s ", argv[i]); | |
24 | + } | |
25 | + fprintf(fpt, "\n"); | |
26 | + fclose(fpt); | |
27 | + } | |
28 | + for(i=1; i<argc; i++) { | |
29 | + if(OPTION_FLAG==argv[i][OPTION_FLAG_POS]) { | |
30 | + SSWITCH(argv[i]+OPTION_POS) | |
31 | + SCASE("i") { | |
32 | + if(i+1<argc) { | |
33 | + info->In = stringGetNthWord(argv[i+1], 1, " ,"); | |
34 | + i++; | |
35 | + info->flagIn++; | |
36 | + } else { | |
37 | + usage(argv[0]); | |
38 | + exit(EXIT_FAILURE); | |
39 | + } | |
40 | + SBREAK; | |
41 | + } | |
42 | + SCASE("o") { | |
43 | + if(i+1<argc) { | |
44 | + info->Out = stringGetNthWord(argv[i+1], 1, " ,"); | |
45 | + i++; | |
46 | + info->flagOut++; | |
47 | + } else { | |
48 | + usage(argv[0]); | |
49 | + exit(EXIT_FAILURE); | |
50 | + } | |
51 | + SBREAK; | |
52 | + } | |
53 | + SCASE("O") { | |
54 | + if(i+1<argc) { | |
55 | + info->OutParam = stringGetNthWord(argv[i+1], 1, " ,"); | |
56 | + i++; | |
57 | + info->flagOutParam++; | |
58 | + } else { | |
59 | + usage(argv[0]); | |
60 | + exit(EXIT_FAILURE); | |
61 | + } | |
62 | + SBREAK; | |
63 | + } | |
64 | + SCASE("EAMode") { | |
65 | + if(i+1<argc) { | |
66 | + info->EAMode = stringGetNthWord(argv[i+1], 1, " ,"); | |
67 | + i++; | |
68 | + info->flagEAMode++; | |
69 | + } else { | |
70 | + usage(argv[0]); | |
71 | + exit(EXIT_FAILURE); | |
72 | + } | |
73 | + SBREAK; | |
74 | + } | |
75 | + SCASE("Rot1") { | |
76 | + if(i+3<argc) { | |
77 | + info->Rot1Min = stringGetNthRealData(argv[i+1], 1, " ,"); | |
78 | + i++; | |
79 | + info->flagRot1Min++; | |
80 | + info->Rot1Max = stringGetNthRealData(argv[i+1], 1, " ,"); | |
81 | + i++; | |
82 | + info->flagRot1Max++; | |
83 | + info->Rot1Delta = stringGetNthRealData(argv[i+1], 1, " ,"); | |
84 | + i++; | |
85 | + info->flagRot1Delta++; | |
86 | + } else { | |
87 | + usage(argv[0]); | |
88 | + exit(EXIT_FAILURE); | |
89 | + } | |
90 | + SBREAK; | |
91 | + } | |
92 | + SCASE("Rot2") { | |
93 | + if(i+3<argc) { | |
94 | + info->Rot2Min = stringGetNthRealData(argv[i+1], 1, " ,"); | |
95 | + i++; | |
96 | + info->flagRot2Min++; | |
97 | + info->Rot2Max = stringGetNthRealData(argv[i+1], 1, " ,"); | |
98 | + i++; | |
99 | + info->flagRot2Max++; | |
100 | + info->Rot2Delta = stringGetNthRealData(argv[i+1], 1, " ,"); | |
101 | + i++; | |
102 | + info->flagRot2Delta++; | |
103 | + } else { | |
104 | + usage(argv[0]); | |
105 | + exit(EXIT_FAILURE); | |
106 | + } | |
107 | + SBREAK; | |
108 | + } | |
109 | + SCASE("Rot3") { | |
110 | + if(i+3<argc) { | |
111 | + info->Rot3Min = stringGetNthRealData(argv[i+1], 1, " ,"); | |
112 | + i++; | |
113 | + info->flagRot3Min++; | |
114 | + info->Rot3Max = stringGetNthRealData(argv[i+1], 1, " ,"); | |
115 | + i++; | |
116 | + info->flagRot3Max++; | |
117 | + info->Rot3Delta = stringGetNthRealData(argv[i+1], 1, " ,"); | |
118 | + i++; | |
119 | + info->flagRot3Delta++; | |
120 | + } else { | |
121 | + usage(argv[0]); | |
122 | + exit(EXIT_FAILURE); | |
123 | + } | |
124 | + SBREAK; | |
125 | + } | |
126 | + SCASE("M") { | |
127 | + if(i+1<argc) { | |
128 | + info->InterpolationMode = stringGetNthIntegerData(argv[i+1], 1, " ,"); | |
129 | + i++; | |
130 | + info->flagInterpolationMode++; | |
131 | + } else { | |
132 | + usage(argv[0]); | |
133 | + exit(EXIT_FAILURE); | |
134 | + } | |
135 | + SBREAK; | |
136 | + } | |
137 | + SCASE("c") { | |
138 | + if(i+1<argc) { | |
139 | + info->configFile = stringGetNthWord(argv[i+1], 1, " ,"); | |
140 | + i++; | |
141 | + info->flagconfigFile++; | |
142 | + } else { | |
143 | + usage(argv[0]); | |
144 | + exit(EXIT_FAILURE); | |
145 | + } | |
146 | + SBREAK; | |
147 | + } | |
148 | + SCASE("m") { | |
149 | + if(i+1<argc) { | |
150 | + info->mode = stringGetNthIntegerData(argv[i+1], 1, " ,"); | |
151 | + i++; | |
152 | + info->flagmode++; | |
153 | + } else { | |
154 | + usage(argv[0]); | |
155 | + exit(EXIT_FAILURE); | |
156 | + } | |
157 | + SBREAK; | |
158 | + } | |
159 | + SCASE("h") { | |
160 | + usage(argv[0]); | |
161 | + exit(EXIT_SUCCESS); | |
162 | + break; | |
163 | + } | |
164 | + SCASE("html") { | |
165 | + htmlBeforeUsage(argv[0]); | |
166 | + usage(argv[0]); | |
167 | + htmlAfterUsage(argv[0]); | |
168 | + exit(EXIT_SUCCESS); | |
169 | + break; | |
170 | + } | |
171 | + SDEFAULT { | |
172 | + fprintf(stderr, "Not Supported Options: :%s\n", argv[i]); | |
173 | + usage(argv[0]); | |
174 | + exit(EXIT_FAILURE); | |
175 | + break; | |
176 | + } | |
177 | + SSWITCHEND; | |
178 | + } | |
179 | + } | |
180 | +} |
@@ -0,0 +1,140 @@ | ||
1 | +#include <stdio.h> | |
2 | +#include <stdlib.h> | |
3 | +#include <string.h> | |
4 | +#include <math.h> | |
5 | +#include "../inc/config.h" | |
6 | +#include "genUtil.h" | |
7 | +#include "String.h" | |
8 | +#include "File.h" | |
9 | +#include "Memory.h" | |
10 | + | |
11 | + | |
12 | +void | |
13 | +init0(mrcImageAutoTrimingInfo* info) | |
14 | +{ | |
15 | + info->fptIn = NULL; info->flagIn = 0; | |
16 | + info->fptOut = NULL; info->flagOut = 0; | |
17 | + info->fptOutParam = stdout; info->flagOutParam = 0; | |
18 | + info->EAMode = stringGetNthWord("ZONS", 1, "\0"); info->flagEAMode = 0; | |
19 | + info->Rot1Min = -5; info->flagRot1Min = 0; | |
20 | + info->Rot1Max = 5; info->flagRot1Max = 0; | |
21 | + info->Rot1Delta = 1; info->flagRot1Delta = 0; | |
22 | + info->Rot2Min = -5; info->flagRot2Min = 0; | |
23 | + info->Rot2Max = 5; info->flagRot2Max = 0; | |
24 | + info->Rot2Delta = 1; info->flagRot2Delta = 0; | |
25 | + info->Rot3Min = -5; info->flagRot3Min = 0; | |
26 | + info->Rot3Max = 5; info->flagRot3Max = 0; | |
27 | + info->Rot3Delta = 1; info->flagRot3Delta = 0; | |
28 | + info->InterpolationMode = 0; info->flagInterpolationMode = 0; | |
29 | + info->fptconfigFile = NULL; info->flagconfigFile = 0; | |
30 | + info->mode = 0; info->flagmode = 0; | |
31 | +} | |
32 | + | |
33 | +void | |
34 | +init1(mrcImageAutoTrimingInfo* info) | |
35 | +{ | |
36 | + char s[1024]; | |
37 | + int i; | |
38 | + if(!info->flagIn) { | |
39 | + stringGetFromFile(s, "In", stdin, stdout, 0); | |
40 | + info->In = stringGetNthWord(s, 1, " ,\t"); | |
41 | + info->flagIn++; | |
42 | + } | |
43 | + if(info->flagIn) { | |
44 | + info->fptIn = fileOpen(info->In, "r"); | |
45 | + } | |
46 | + | |
47 | + if(!info->flagOut) { | |
48 | + stringGetFromFile(s, "Out", stdin, stdout, 0); | |
49 | + info->Out = stringGetNthWord(s, 1, " ,\t"); | |
50 | + info->flagOut++; | |
51 | + } | |
52 | + if(info->flagOut) { | |
53 | + info->fptOut = fileOpen(info->Out, "w"); | |
54 | + } | |
55 | + | |
56 | + if(info->flagOutParam) { | |
57 | + info->fptOutParam = fileOpen(info->OutParam, "w"); | |
58 | + } | |
59 | + | |
60 | + if(info->flagEAMode) { | |
61 | + } | |
62 | + | |
63 | + if(info->flagRot1Min) { | |
64 | + } | |
65 | + | |
66 | + if(info->flagRot1Max) { | |
67 | + } | |
68 | + | |
69 | + if(info->flagRot1Delta) { | |
70 | + } | |
71 | + | |
72 | + if(info->flagRot2Min) { | |
73 | + } | |
74 | + | |
75 | + if(info->flagRot2Max) { | |
76 | + } | |
77 | + | |
78 | + if(info->flagRot2Delta) { | |
79 | + } | |
80 | + | |
81 | + if(info->flagRot3Min) { | |
82 | + } | |
83 | + | |
84 | + if(info->flagRot3Max) { | |
85 | + } | |
86 | + | |
87 | + if(info->flagRot3Delta) { | |
88 | + } | |
89 | + | |
90 | + if(info->flagInterpolationMode) { | |
91 | + } | |
92 | + | |
93 | + if(info->flagconfigFile) { | |
94 | + info->fptconfigFile = fileOpen(info->configFile, "r"); | |
95 | + } | |
96 | + | |
97 | + if(info->flagmode) { | |
98 | + } | |
99 | + | |
100 | +} | |
101 | +#ifdef KHOROS | |
102 | +#include <stdio.h> | |
103 | +#include "bootstrap.h" | |
104 | +#include "dataserv.h" | |
105 | +#include "datamanip.h" | |
106 | +extern void func_usage_additions(void); | |
107 | +extern void func_free_args(kexit_status status, kaddr client_data); | |
108 | +extern void func_get_args(kform* pane); | |
109 | + | |
110 | +void | |
111 | +func_usage_additions(void) | |
112 | +{ | |
113 | +} | |
114 | +void | |
115 | +func_free_args(kexit_status status, kaddr client_data) | |
116 | +{ | |
117 | +} | |
118 | +void | |
119 | +func_get_args(kform* pane) | |
120 | +{ | |
121 | +} | |
122 | +void | |
123 | +khorosInit(int argc, char* argv[]) | |
124 | +{ | |
125 | + char* eospath; | |
126 | + char panepath[1024]; | |
127 | + FILE* fpt; | |
128 | + | |
129 | + eospath = getenv("EOS_HOME"); | |
130 | + sprintf(panepath, "%s/src/Tools/mrcImage/mrcImageAutoTriming/src/mrcImageAutoTriming.pane", eospath); | |
131 | + khoros_initialize(argc, argv, "EOS"); | |
132 | + fpt = fopen(panepath, "r"); if(NULL!=fpt) { | |
133 | + fclose(fpt); | |
134 | + kclui_initialize(panepath, KGEN_NONE, "EOS", "mrcImageAutoTriming", | |
135 | + func_usage_additions, | |
136 | + func_get_args, | |
137 | + func_free_args); | |
138 | + } | |
139 | +} | |
140 | +#endif /* KHOROS */ |
@@ -0,0 +1,219 @@ | ||
1 | +/* | |
2 | +# mrcImageAutoTriming : $Revision$ | |
3 | +# $Date$ | |
4 | +# Created by $Author$ | |
5 | +# Usage : mrcImageAutoTriming | |
6 | +# Attention | |
7 | +# $Loccker$ | |
8 | +# $State$ | |
9 | +# | |
10 | +*/ | |
11 | +#include <stdio.h> | |
12 | +#include <stdlib.h> | |
13 | +#include <string.h> | |
14 | +#include <math.h> | |
15 | +#define GLOBAL_DECLARATION | |
16 | +#include "../inc/config.h" | |
17 | + | |
18 | +#define DEBUG | |
19 | +#include "genUtil.h" | |
20 | +#include "Matrix3D.h" | |
21 | +#include "mrcImage.h" | |
22 | + | |
23 | +typedef struct lmrcImageAutoTrimingInfo { | |
24 | + // Control | |
25 | + EulerAngleInfo min; | |
26 | + EulerAngleInfo max; | |
27 | + EulerAngleInfo delta; | |
28 | + int InterpolationMode; | |
29 | + | |
30 | + // Temp | |
31 | + EulerAngleInfo cur; | |
32 | + | |
33 | + // Final | |
34 | + EulerAngleInfo best; | |
35 | + mrcImageParaTypeReal bestThickness; | |
36 | + mrcImageParaTypeReal bestThicknessBottom; | |
37 | + mrcImageParaTypeReal bestThicknessTop; | |
38 | + | |
39 | +} lmrcImageAutoTrimingInfo; | |
40 | + | |
41 | +typedef enum lmrcImageAutoTrimingMode { | |
42 | + lmrcImageAutoTrimingModeZLayerMinCut=0, | |
43 | + lmrcImageAutoTrimingModeZLayerSDCut=1 | |
44 | +} lmrcImageAutoTrimingMode; | |
45 | + | |
46 | +extern char* stpncpy(char *restrict dst, const char *restrict src, size_t n); | |
47 | +extern void lmrcImageAutoTriming(mrcImage* out, mrcImage* in, lmrcImageAutoTrimingInfo* linfo, int mode); | |
48 | +extern void lmrcImageAutoTrimingOutput(FILE* fpt, lmrcImageAutoTrimingInfo* linfo, int mode); | |
49 | +extern void lmrcImageAutoTrimingUsage(FILE* fpt); | |
50 | + | |
51 | +int | |
52 | +main(int argc, char* argv[]) | |
53 | +{ | |
54 | + mrcImageAutoTrimingInfo info; | |
55 | + lmrcImageAutoTrimingInfo linfo; | |
56 | + mrcImage in; | |
57 | + mrcImage out; | |
58 | + | |
59 | + init0(&info); | |
60 | + argCheck(&info, argc, argv); | |
61 | + init1(&info); | |
62 | + | |
63 | + DEBUGPRINT("Program Start\n"); | |
64 | + strncpy(linfo.cur.EAMode, info.EAMode, 4); | |
65 | + strncpy(linfo.min.EAMode, info.EAMode, 4); | |
66 | + strncpy(linfo.max.EAMode, info.EAMode, 4); | |
67 | + strncpy(linfo.delta.EAMode, info.EAMode, 4); | |
68 | + linfo.min.Rot1 = info.Rot1Min*RADIAN; | |
69 | + linfo.min.Rot2 = info.Rot2Min*RADIAN; | |
70 | + linfo.min.Rot3 = info.Rot3Min*RADIAN; | |
71 | + linfo.max.Rot1 = info.Rot1Max*RADIAN; | |
72 | + linfo.max.Rot2 = info.Rot2Max*RADIAN; | |
73 | + linfo.max.Rot3 = info.Rot3Max*RADIAN; | |
74 | + linfo.delta.Rot1 = info.Rot1Delta*RADIAN; | |
75 | + linfo.delta.Rot2 = info.Rot2Delta*RADIAN; | |
76 | + linfo.delta.Rot3 = info.Rot3Delta*RADIAN; | |
77 | + linfo.InterpolationMode = info.InterpolationMode; | |
78 | + | |
79 | + mrcFileRead(&in, info.In, "in main", 0); | |
80 | + | |
81 | + lmrcImageAutoTriming(&out, &in, &linfo, info.mode); | |
82 | + | |
83 | + lmrcImageAutoTrimingOutput(info.fptOutParam, &linfo, info.mode); | |
84 | + | |
85 | + mrcFileWrite(&out, info.Out, "in main", 0); | |
86 | + | |
87 | + exit(EXIT_SUCCESS); | |
88 | +} | |
89 | + | |
90 | +void | |
91 | +additionalUsage() | |
92 | +{ | |
93 | + fprintf(stderr, "----- Additional Usage -----\n"); | |
94 | + lmrcImageAutoTrimingUsage(stderr); | |
95 | +} | |
96 | + | |
97 | +void | |
98 | +lmrcImageAutoTriming(mrcImage* out, mrcImage* in, lmrcImageAutoTrimingInfo* linfo, int mode) | |
99 | +{ | |
100 | + Matrix3D mat; | |
101 | + mrcImage tmp; | |
102 | + mrcImageParaTypeInteger ix, iy, iz, k, kz, ky, kx0; | |
103 | + double data; | |
104 | + | |
105 | + int flagBottom, izBottom; | |
106 | + int flagTop, izTop; | |
107 | + int thickness; | |
108 | + double minSD; | |
109 | + mrcImageParaTypeRealCoord to; | |
110 | + | |
111 | + linfo->bestThickness = in->HeaderN.z; | |
112 | + for(linfo->cur.Rot1=linfo->min.Rot1; linfo->cur.Rot1<=linfo->max.Rot1; linfo->cur.Rot1+=linfo->delta.Rot1) { | |
113 | + for(linfo->cur.Rot2=linfo->min.Rot2; linfo->cur.Rot2<=linfo->max.Rot2; linfo->cur.Rot2+=linfo->delta.Rot2) { | |
114 | + for(linfo->cur.Rot3=linfo->min.Rot3; linfo->cur.Rot3<=linfo->max.Rot3; linfo->cur.Rot3+=linfo->delta.Rot3) { | |
115 | + lmrcImageRotation3DFollowingEulerAngle(&tmp, in, linfo->cur.EAMode, linfo->cur.Rot1, linfo->cur.Rot2, linfo->cur.Rot3, linfo->InterpolationMode, 0); | |
116 | + | |
117 | + switch(mode) { | |
118 | + case lmrcImageAutoTrimingModeZLayerMinCut: { | |
119 | + flagBottom = 0; | |
120 | + flagTop = 0; | |
121 | + izBottom = 0; | |
122 | + izTop = in->HeaderN.z - 1; | |
123 | + for(iz=0; iz<in->HeaderN.z; iz++) { | |
124 | + kz = iz*in->HeaderN.x*in->HeaderN.y; | |
125 | + for(iy=0; iy<in->HeaderN.y; iy++) { | |
126 | + ky = iy*in->HeaderN.x; | |
127 | + kx0 = ky + kz; | |
128 | + for(ix=0; ix<in->HeaderN.x; ix++) { | |
129 | + k = ix + kx0; | |
130 | + | |
131 | + data = tmp.ImageFloatImage[k]; | |
132 | + if(0<data) { | |
133 | + flagBottom = 1; | |
134 | + izBottom = iz; | |
135 | + } | |
136 | + if(flagBottom) break; | |
137 | + } | |
138 | + if(flagBottom) break; | |
139 | + } | |
140 | + if(flagBottom) break; | |
141 | + } | |
142 | + | |
143 | + for(iz=in->HeaderN.z-1; 0<=iz; iz--) { | |
144 | + kz = iz*in->HeaderN.x*in->HeaderN.y; | |
145 | + for(iy=0; iy<in->HeaderN.y; iy++) { | |
146 | + ky = iy*in->HeaderN.x; | |
147 | + kx0 = ky + kz; | |
148 | + for(ix=0; ix<in->HeaderN.x; ix++) { | |
149 | + k = ix + kx0; | |
150 | + | |
151 | + data = tmp.ImageFloatImage[k]; | |
152 | + if(0<data) { | |
153 | + flagTop = 1; | |
154 | + izTop = iz; | |
155 | + } | |
156 | + if(flagTop) break; | |
157 | + } | |
158 | + if(flagTop) break; | |
159 | + } | |
160 | + if(flagTop) break; | |
161 | + } | |
162 | + thickness = izTop - izBottom + 1; | |
163 | + if(thickness < linfo->bestThickness) { | |
164 | + linfo->bestThickness = thickness; | |
165 | + linfo->bestThicknessTop = izTop; | |
166 | + linfo->bestThicknessBottom = izBottom; | |
167 | + strncpy(linfo->best.EAMode, linfo->cur.EAMode, 4); | |
168 | + linfo->best.Rot1 = linfo->cur.Rot1; | |
169 | + linfo->best.Rot2 = linfo->cur.Rot2; | |
170 | + linfo->best.Rot3 = linfo->cur.Rot3; | |
171 | + } | |
172 | + break; | |
173 | + } | |
174 | + case lmrcImageAutoTrimingModeZLayerSDCut: { | |
175 | + minSD = in->HeaderN.z; | |
176 | + | |
177 | + break; | |
178 | + } | |
179 | + default: { | |
180 | + fprintf(stderr, "Not supported mode: %d\n", mode); | |
181 | + break; | |
182 | + } | |
183 | + } | |
184 | + mrcImageFree(&tmp, 0); | |
185 | + } | |
186 | + } | |
187 | + } | |
188 | + lmrcImageRotation3DFollowingEulerAngle(&tmp, in, linfo->best.EAMode, linfo->best.Rot1, linfo->best.Rot2, linfo->best.Rot3, linfo->InterpolationMode, 0); | |
189 | + out->Header = tmp.Header; | |
190 | + out->HeaderN.z = linfo->bestThickness; | |
191 | + out->HeaderStartN.z = -out->HeaderN.z/2; | |
192 | + mrcInit(out, NULL); | |
193 | + to.x = to.y = 0; | |
194 | + to.z = -linfo->bestThicknessBottom; | |
195 | + DEBUGPRINT1("to.z: %f\n", to.z); | |
196 | + lmrcImageCopy(out, &tmp, to); | |
197 | +} | |
198 | + | |
199 | +void | |
200 | +lmrcImageAutoTrimingOutput(FILE* fpt, lmrcImageAutoTrimingInfo* linfo, int mode) | |
201 | +{ | |
202 | + switch(mode) { | |
203 | + case lmrcImageAutoTrimingModeZLayerMinCut: | |
204 | + case lmrcImageAutoTrimingModeZLayerSDCut: { | |
205 | + fprintf(fpt, "BestRotation: %4s %15.6g %15.6g %15.6g\n", linfo->best.EAMode, linfo->best.Rot1*DEGREE, linfo->best.Rot2*DEGREE, linfo->best.Rot3*DEGREE); | |
206 | + fprintf(fpt, "Z-Thickness: %15.6g %15.6g %15.6g\n", linfo->bestThickness, linfo->bestThicknessBottom, linfo->bestThicknessTop); | |
207 | + break; | |
208 | + } | |
209 | + } | |
210 | +} | |
211 | + | |
212 | +void | |
213 | +lmrcImageAutoTrimingUsage(FILE* fpt) | |
214 | +{ | |
215 | + fprintf(fpt, ">>> mode\n"); | |
216 | + fprintf(fpt, "%d: z-layer(minimum of z-axis by min)\n", lmrcImageAutoTrimingModeZLayerMinCut); | |
217 | + fprintf(fpt, "%d: z-layer(minimum of z-axis by SD)\n", lmrcImageAutoTrimingModeZLayerSDCut); | |
218 | +} | |
219 | + |
@@ -0,0 +1,33 @@ | ||
1 | +<HTML> | |
2 | +<HEAD> | |
3 | +<TITLE>mrcImageAutoTriming</TITLE> | |
4 | +</HEAD> | |
5 | +<BODY> | |
6 | +<H1>mrcImageAutoTriming</H1> | |
7 | +<H2>Usage</H2> | |
8 | +<PRE> | |
9 | +Usage: mrcImageAutoTriming | |
10 | +Options: | |
11 | + [-i[nput] In (NULL ).as(inFile::mrcImage ) ] :Essential :Input:mrcImage | |
12 | + [-o[utput] Out (NULL ).as(outFile::mrcImage ) ] :Essential :Output:mrcImage | |
13 | + [-O[utput] OutParam (stdout ).as(outFile::YAML ) ] :Optional :OutputParams:YAML | |
14 | + [-E[uler]A[ngle]Mode EAMode (ZONS ).as(String ) ] :Optional :EulerAngle | |
15 | + [-Rot[ation]1 Rot1Min (-5 ).as(Real ) | |
16 | + Rot1Max (5 ).as(Real ) | |
17 | + Rot1Delta (1 ).as(Real ) ] :Optional :Rot1 | |
18 | + [-Rot[ation]2 Rot2Min (-5 ).as(Real ) | |
19 | + Rot2Max (5 ).as(Real ) | |
20 | + Rot2Delta (1 ).as(Real ) ] :Optional :Rot2 | |
21 | + [-Rot[ation]3 Rot3Min (-5 ).as(Real ) | |
22 | + Rot3Max (5 ).as(Real ) | |
23 | + Rot3Delta (1 ).as(Real ) ] :Optional :Rot3 | |
24 | + [-M[ode] InterpolationMode (0 ).as(Integer ) ] :Optional :Iterpolation Mode | |
25 | + [-c[onfig] configFile (NULL ).as(inFile ) ] :Optional :ConfigurationFile | |
26 | + [-m[ode] mode (0 ).as(Integer ) ] :Optional :Mode | |
27 | +----- Additional Usage ----- | |
28 | +>>> mode | |
29 | +0: z-layer(minimum of z-axis by min) | |
30 | +1: z-layer(minimum of z-axis by SD) | |
31 | +</PRE> | |
32 | +</BODY> | |
33 | +</HTML> |
@@ -0,0 +1,22 @@ | ||
1 | +-F 4.3 1 0 52x1+0+0 +0+0 'Cantata' cantata | |
2 | + -M 1 1 52x1+0+0 +1+0 ' ' subform | |
3 | + -P 1 0 52x1+0+1 +0+0 ' ' mrcImageAutoTriming | |
4 | + -D 1 0 9x1+0+0 'Options' _gui_options | |
5 | + -H 1 6x1+0+0 'License' 'license' $BOOTSTRAP/repos/license/License license | |
6 | + -E | |
7 | + -R 1 0 1 5x1+35+0 'Run' 'execute operation' $EOS/bin/mrcImageAutoTriming | |
8 | + -H 1 5x1+41+0 'Help' 'help page' $EOS/src/Tools/mrcImage/mrcImageAutoTriming/doc/mrcImageAutoTriming.doc help | |
9 | + -Q 1 0 5.25x1+47+0 'Close' | |
10 | + -I 1 0 1 1 0 1 -1x1+1+1.500000 ' ' 'In' 'Input:mrcImage' i | |
11 | + -O 1 0 1 1 0 1 -1x1+1+3.000000 ' ' 'Out' 'Output:mrcImage' o | |
12 | + -O 1 0 1 0 0 1 -1x1+1+4.500000 ' ' 'OutParam' 'OutputParams:YAML' O | |
13 | + -s 1 0 1 0 0 -1x1+1+6.000000 0 0 0 0 0 'EAMode' 'EulerAngle' EAMode | |
14 | + -I 1 0 0 1 0 1 -1x1+1+7 ' ' '-5' 'Rot1Min' Rot1 | |
15 | + -I 1 0 0 1 0 1 -1x1+1+9 ' ' '-5' 'Rot2Min' Rot2 | |
16 | + -I 1 0 0 1 0 1 -1x1+1+10 ' ' '-5' 'Rot3Min' Rot3 | |
17 | + -i 1 0 1 0 0 -1x1+1+12.000000 0 0 0 0 0 'InterpolationMode' 'Iterpolation Mode' M | |
18 | + -I 1 0 1 0 0 1 -1x1+1+13.500000 ' ' 'configFile' 'ConfigurationFile' c | |
19 | + -i 1 0 1 0 0 -1x1+1+15.000000 0 0 0 0 0 'mode' 'Mode' m | |
20 | + -E | |
21 | + -E | |
22 | +-E |
@@ -0,0 +1,20 @@ | ||
1 | +include ../../Config/Define.inc | |
2 | +include ../../../Config/Define.inc | |
3 | +include ../../../../Config/Define.inc | |
4 | +include ../../../../../Config/Define.inc | |
5 | + | |
6 | +all: help exec | |
7 | + | |
8 | +help: | |
9 | + @echo "----- Help Message Check -----" | |
10 | + @../$(OSTYPE)/$(OBJECTNAME) -h | |
11 | + | |
12 | +exec: | |
13 | + @echo "----- Execution Check -----" | |
14 | + ../$(OSTYPE)/$(OBJECTNAME) -i data/121p.bin -o data/121p.roi -O data/121p.param -m 0 -EAMode ZONS -Rot1 -10 10 1 -Rot2 0 0 1 -Rot3 0 0 1 | |
15 | + @echo "----- Calc check -----" | |
16 | + | |
17 | +init: | |
18 | + mrcImageBinalization -i data/121p.in -o data/121p.bin -m 32 | |
19 | + | |
20 | +clean: |
@@ -0,0 +1 @@ | ||
1 | +../../../../../..//data/mrcImageAutoTriming | |
\ No newline at end of file |
@@ -0,0 +1,42 @@ | ||
1 | +#include <stdio.h> | |
2 | +#include <stdlib.h> | |
3 | +#include "../inc/config.h" | |
4 | + | |
5 | +void | |
6 | +usage(char* thisProgram) | |
7 | +{ | |
8 | + fprintf(stderr, "Usage: %s\n", thisProgram); | |
9 | + fprintf(stderr, "Options:\n"); | |
10 | + fprintf(stderr, " [-i[nput] In (NULL ).as(inFile::mrcImage ) ] :Essential :Input:mrcImage\n"); | |
11 | + fprintf(stderr, " [-o[utput] Out (NULL ).as(outFile::mrcImage ) ] :Essential :Output:mrcImage\n"); | |
12 | + fprintf(stderr, " [-O[utput] OutParam (stdout ).as(outFile::YAML ) ] :Optional :OutputParams:YAML\n"); | |
13 | + fprintf(stderr, " [-E[uler]A[ngle]Mode EAMode (ZONS ).as(String ) ] :Optional :EulerAngle\n"); | |
14 | + fprintf(stderr, " [-Rot[ation]1 Rot1Min (-5 ).as(Real ) \n Rot1Max (5 ).as(Real ) \n Rot1Delta (1 ).as(Real ) ] :Optional :Rot1\n"); | |
15 | + fprintf(stderr, " [-Rot[ation]2 Rot2Min (-5 ).as(Real ) \n Rot2Max (5 ).as(Real ) \n Rot2Delta (1 ).as(Real ) ] :Optional :Rot2\n"); | |
16 | + fprintf(stderr, " [-Rot[ation]3 Rot3Min (-5 ).as(Real ) \n Rot3Max (5 ).as(Real ) \n Rot3Delta (1 ).as(Real ) ] :Optional :Rot3\n"); | |
17 | + fprintf(stderr, " [-M[ode] InterpolationMode (0 ).as(Integer ) ] :Optional :Iterpolation Mode\n"); | |
18 | + fprintf(stderr, " [-c[onfig] configFile (NULL ).as(inFile ) ] :Optional :ConfigurationFile\n"); | |
19 | + fprintf(stderr, " [-m[ode] mode (0 ).as(Integer ) ] :Optional :Mode\n"); | |
20 | + additionalUsage(); | |
21 | +} | |
22 | + | |
23 | +void | |
24 | +htmlBeforeUsage(char* thisProgram) | |
25 | +{ | |
26 | + fprintf(stderr, "<HTML>\n"); | |
27 | + fprintf(stderr, "<HEAD>\n"); | |
28 | + fprintf(stderr, "<TITLE>%s</TITLE>\n", thisProgram); | |
29 | + fprintf(stderr, "</HEAD>\n"); | |
30 | + fprintf(stderr, "<BODY>\n"); | |
31 | + fprintf(stderr, "<H1>%s</H1>\n", thisProgram); | |
32 | + fprintf(stderr, "<H2>Usage</H2>\n"); | |
33 | + fprintf(stderr, "<PRE>\n"); | |
34 | +} | |
35 | + | |
36 | +void | |
37 | +htmlAfterUsage(char* thisProgram) | |
38 | +{ | |
39 | + fprintf(stderr, "</PRE>\n"); | |
40 | + fprintf(stderr, "</BODY>\n"); | |
41 | + fprintf(stderr, "</HTML>\n"); | |
42 | +} |
@@ -0,0 +1,4 @@ | ||
1 | +#include <stdio.h> | |
2 | +#include <stdlib.h> | |
3 | +#include "../inc/config.h" | |
4 | + |
@@ -54,6 +54,7 @@ additionalUsage() | ||
54 | 54 | fprintf(stderr, " 5: mean of Sparse \n"); |
55 | 55 | fprintf(stderr, " 6: mean of 2DEdge\n"); |
56 | 56 | fprintf(stderr, " 7: RMS of all pixels \n"); |
57 | + fprintf(stderr, " 8: sd of all axes\n"); | |
57 | 58 | } |
58 | 59 | |
59 | 60 | void |
@@ -265,6 +266,11 @@ outputMrcImageInfo(FILE* fpt, infoDataList* dat, mrcImage* img, mrcImageInfoInfo | ||
265 | 266 | fprintf(fpt, "RMS: %15.6g\n", dat->info.RMS); |
266 | 267 | break; |
267 | 268 | } |
269 | + case sdOfAllAxis:{ | |
270 | + fprintf(fpt, "aveOfAllAxis: %15.6g %15.6g %15.6g\n", dat->info.aveOfAllAxis.x , dat->info.aveOfAllAxis.y, dat->info.aveOfAllAxis.z); | |
271 | + fprintf(fpt, "sdOfAllAxis: %15.6g %15.6g %15.6g\n", dat->info.sdOfAllAxis.x , dat->info.sdOfAllAxis.y, dat->info.sdOfAllAxis.z); | |
272 | + break; | |
273 | + } | |
268 | 274 | default:{ |
269 | 275 | fprintf(stderr, "Not supported mode :%ld", info->mode); |
270 | 276 | exit(EXIT_FAILURE); |
@@ -36,6 +36,7 @@ The -I option uses -rmax or -m options | ||
36 | 36 | 5: mean of Sparse |
37 | 37 | 6: mean of 2DEdge |
38 | 38 | 7: RMS of all pixels |
39 | + 8: sd of all axes | |
39 | 40 | </PRE> |
40 | 41 | </BODY> |
41 | 42 | </HTML> |
@@ -12,6 +12,18 @@ help: | ||
12 | 12 | exec: |
13 | 13 | @echo "----- Execution Check -----" |
14 | 14 | ../$(OSTYPE)/$(OBJECTNAME) -i data/test.roi -I -rmax 100 -m 2 |
15 | + ../$(OSTYPE)/$(OBJECTNAME) -i data/test.roi -I -m 0 | |
16 | + ../$(OSTYPE)/$(OBJECTNAME) -i data/test.roi -I -m 1 | |
17 | + ../$(OSTYPE)/$(OBJECTNAME) -i data/test.roi -I -m 2 | |
18 | + ../$(OSTYPE)/$(OBJECTNAME) -i data/test.roi -I -m 3 | |
19 | + ../$(OSTYPE)/$(OBJECTNAME) -i data/test.roi -I -m 4 | |
20 | + ../$(OSTYPE)/$(OBJECTNAME) -i data/test.roi -I -m 5 | |
21 | + ../$(OSTYPE)/$(OBJECTNAME) -i data/test.roi -I -m 6 | |
22 | + ../$(OSTYPE)/$(OBJECTNAME) -i data/test.roi -I -m 7 | |
23 | + @echo "----- Calc check -----" | |
24 | + | |
25 | +exec2: | |
26 | + ../$(OSTYPE)/$(OBJECTNAME) -i data/121p.in -I -m 8 | |
15 | 27 | @echo "----- Calc check -----" |
16 | 28 | |
17 | 29 | clean: |
@@ -7,5 +7,7 @@ | ||
7 | 7 | "-Owe","-O[utput]w[hite]e[dge]","Output: whiteEdge","Optional","1","1","OutWhiteEdge","outFile::mrcImage","NULL" |
8 | 8 | "-Obe","-O[utput]b[lack]e[dge]","Output: blackEdge","Optional","1","1","OutBlackEdge","outFile::mrcImage","NULL" |
9 | 9 | "-lt","-l[ine]t[hickness]","[pixel]","Optional","2","1","LineThicknessX","Real","1","2","LineThicknessY","Real","1" |
10 | +"-lm","-l[ine]m[ode]","LineMode","Optional","1","1","LineMode","Integer","0" | |
11 | +"-ls","-l[ine]s[hape]","LineShape","Optional","1","1","LineShape","Integer","0" | |
10 | 12 | "-c","-c[onfig]","ConfigurationFile","Optional","1","1","configFile","inFile","NULL" |
11 | 13 | "-m","-m[ode]","Mode","Optional","1","1","mode","Integer","0" |
@@ -43,6 +43,12 @@ typedef struct mrcImageMeanFreePathCalcInfo { | ||
43 | 43 | long flagLineThicknessY; |
44 | 44 | float LineThicknessY; |
45 | 45 | |
46 | + long flagLineMode; | |
47 | + long LineMode; | |
48 | + | |
49 | + long flagLineShape; | |
50 | + long LineShape; | |
51 | + | |
46 | 52 | long flagconfigFile; |
47 | 53 | char* configFile; |
48 | 54 | FILE* fptconfigFile; |
@@ -108,6 +108,28 @@ argCheck(mrcImageMeanFreePathCalcInfo* info, int argc, char* argv[]) | ||
108 | 108 | } |
109 | 109 | SBREAK; |
110 | 110 | } |
111 | + SCASE("lm") { | |
112 | + if(i+1<argc) { | |
113 | + info->LineMode = stringGetNthIntegerData(argv[i+1], 1, " ,"); | |
114 | + i++; | |
115 | + info->flagLineMode++; | |
116 | + } else { | |
117 | + usage(argv[0]); | |
118 | + exit(EXIT_FAILURE); | |
119 | + } | |
120 | + SBREAK; | |
121 | + } | |
122 | + SCASE("ls") { | |
123 | + if(i+1<argc) { | |
124 | + info->LineShape = stringGetNthIntegerData(argv[i+1], 1, " ,"); | |
125 | + i++; | |
126 | + info->flagLineShape++; | |
127 | + } else { | |
128 | + usage(argv[0]); | |
129 | + exit(EXIT_FAILURE); | |
130 | + } | |
131 | + SBREAK; | |
132 | + } | |
111 | 133 | SCASE("c") { |
112 | 134 | if(i+1<argc) { |
113 | 135 | info->configFile = stringGetNthWord(argv[i+1], 1, " ,"); |
@@ -20,6 +20,8 @@ init0(mrcImageMeanFreePathCalcInfo* info) | ||
20 | 20 | info->fptOutBlackEdge = NULL; info->flagOutBlackEdge = 0; |
21 | 21 | info->LineThicknessX = 1; info->flagLineThicknessX = 0; |
22 | 22 | info->LineThicknessY = 1; info->flagLineThicknessY = 0; |
23 | + info->LineMode = 0; info->flagLineMode = 0; | |
24 | + info->LineShape = 0; info->flagLineShape = 0; | |
23 | 25 | info->fptconfigFile = NULL; info->flagconfigFile = 0; |
24 | 26 | info->mode = 0; info->flagmode = 0; |
25 | 27 | } |
@@ -64,6 +66,12 @@ init1(mrcImageMeanFreePathCalcInfo* info) | ||
64 | 66 | if(info->flagLineThicknessY) { |
65 | 67 | } |
66 | 68 | |
69 | + if(info->flagLineMode) { | |
70 | + } | |
71 | + | |
72 | + if(info->flagLineShape) { | |
73 | + } | |
74 | + | |
67 | 75 | if(info->flagconfigFile) { |
68 | 76 | info->fptconfigFile = fileOpen(info->configFile, "r"); |
69 | 77 | } |
@@ -21,6 +21,17 @@ | ||
21 | 21 | #include "mrcImage.h" |
22 | 22 | #include "lmrcImageMultiplying.h" |
23 | 23 | |
24 | +typedef enum lmrcImageMeanFreePathCalcLineMode { | |
25 | + lmrcImageMeanFreePathCalcLineModeAnd = 0, | |
26 | + lmrcImageMeanFreePathCalcLineModeOr = 1, | |
27 | + lmrcImageMeanFreePathCalcLineModeGE = 2 | |
28 | +} lmrcImageMeanFreePathCalcLineMode; | |
29 | + | |
30 | +typedef enum lmrcImageMeanFreePathCalcLineShape { | |
31 | + lmrcImageMeanFreePathCalcLineShapeRectangle=0, | |
32 | + lmrcImageMeanFreePathCalcLineShapeDisk=1 | |
33 | +} lmrcImageMeanFreePathCalcLineShape; | |
34 | + | |
24 | 35 | typedef struct lmrcImageMeanFreePathCalcInfo { |
25 | 36 | int N; |
26 | 37 | int* countWhite; |
@@ -45,7 +56,13 @@ typedef struct lmrcImageMeanFreePathCalcInfo { | ||
45 | 56 | // Control: Input |
46 | 57 | mrcImageParaTypeRealCoord Length; |
47 | 58 | mrcImageParaTypeRealCoord LineThickness; |
59 | + lmrcImageMeanFreePathCalcLineMode LineMode; | |
60 | + lmrcImageMeanFreePathCalcLineShape LineShape; | |
48 | 61 | |
62 | + // TemporalVariables | |
63 | + mrcImageParaTypeRealCoord min; | |
64 | + mrcImageParaTypeRealCoord max; | |
65 | + mrcImageParaTypeRealCoord cur; | |
49 | 66 | } lmrcImageMeanFreePathCalcInfo; |
50 | 67 | |
51 | 68 | typedef enum lmrcImageMeanFreePathCalcMode { |
@@ -57,6 +74,7 @@ typedef enum lmrcImageMeanFreePathCalcMode { | ||
57 | 74 | extern void lmrcImageMeanFreePathCalcPrint(FILE* fpt, lmrcImageMeanFreePathCalcInfo* linfo, lmrcImageMeanFreePathCalcMode mode); |
58 | 75 | extern void lmrcImageMeanFreePathCalc(mrcImage* in, lmrcImageMeanFreePathCalcInfo* linfo, lmrcImageMeanFreePathCalcMode mode); |
59 | 76 | extern void lmrcImageMeanFreePathCalcAlongZaxis(mrcImage* in, lmrcImageMeanFreePathCalcInfo* linfo, lmrcImageMeanFreePathCalcMode mode); |
77 | +extern double lmrcImageMeanFreePathCalcBWEvaluation(mrcImage* in, lmrcImageMeanFreePathCalcInfo* linfo, lmrcImageMeanFreePathCalcMode mode); | |
60 | 78 | |
61 | 79 | extern void lmrcImageMeanFreePathCalcModePrint(FILE* fpt); |
62 | 80 |
@@ -80,6 +98,9 @@ main(int argc, char* argv[]) | ||
80 | 98 | linfo.LineThickness.y = info.LineThicknessY; |
81 | 99 | linfo.LineThickness.z = 1; |
82 | 100 | |
101 | + linfo.LineMode = info.LineMode; | |
102 | + linfo.LineShape = info.LineShape; | |
103 | + | |
83 | 104 | lmrcImageMeanFreePathCalc(&in, &linfo, info.mode); |
84 | 105 | |
85 | 106 | lmrcImageMeanFreePathCalcPrint(info.fptOut, &linfo, info.mode); |
@@ -179,8 +200,8 @@ lmrcImageMeanFreePathCalcAlongZaxis(mrcImage* in, lmrcImageMeanFreePathCalcInfo* | ||
179 | 200 | int* countWhiteEdge; |
180 | 201 | int x, y, z; |
181 | 202 | int srcx, srcy; |
182 | - int minx, miny; | |
183 | - int maxx, maxy; | |
203 | + //int minx, miny; | |
204 | + //int maxx, maxy; | |
184 | 205 | int flagEdge; |
185 | 206 | double data; |
186 | 207 | double data0; |
@@ -211,25 +232,22 @@ lmrcImageMeanFreePathCalcAlongZaxis(mrcImage* in, lmrcImageMeanFreePathCalcInfo* | ||
211 | 232 | linfo->N = in->HeaderN.z; |
212 | 233 | |
213 | 234 | for(y=0; y<in->HeaderN.y; y++) { |
214 | - miny = floor(y - linfo->LineThickness.y/2.0 + 0.5); | |
215 | - maxy = floor(y + linfo->LineThickness.y/2.0 + 0.5); | |
235 | + linfo->min.y = floor(y - linfo->LineThickness.y/2.0 + 0.5); | |
236 | + linfo->max.y = floor(y + linfo->LineThickness.y/2.0 + 0.5); | |
237 | + linfo->cur.y = y; | |
216 | 238 | for(x=0; x<in->HeaderN.x; x++) { |
217 | - minx = floor(x - linfo->LineThickness.x/2.0 + 0.5); | |
218 | - maxx = floor(x + linfo->LineThickness.x/2.0 + 0.5); | |
239 | + linfo->min.x = floor(x - linfo->LineThickness.x/2.0 + 0.5); | |
240 | + linfo->max.x = floor(x + linfo->LineThickness.x/2.0 + 0.5); | |
241 | + linfo->cur.x = x; | |
219 | 242 | |
220 | 243 | flagEdge = 1; |
221 | 244 | lengthWhite = 0; |
222 | 245 | lengthBlack = 0; |
223 | 246 | |
224 | 247 | // Start |
225 | - data = 1; | |
226 | - for(srcy=miny; srcy<maxy; srcy++) { | |
227 | - for(srcx=minx; srcx<maxx; srcx++) { | |
228 | - mrcPixelDataGet(in, srcx, srcy, 0, &data0, mrcPixelRePart, mrcPixelHowNearest); | |
229 | - data *= data0; | |
230 | - } | |
231 | - } | |
232 | - //mrcPixelDataGet(in, x, y, 0, &data, mrcPixelRePart, mrcPixelHowNearest); | |
248 | + linfo->cur.z = 0; | |
249 | + data = lmrcImageMeanFreePathCalcBWEvaluation(in, linfo, mode); | |
250 | + | |
233 | 251 | if(0<data) { |
234 | 252 | countWhiteEdge[0]++; |
235 | 253 | lengthWhite++; |
@@ -239,16 +257,10 @@ lmrcImageMeanFreePathCalcAlongZaxis(mrcImage* in, lmrcImageMeanFreePathCalcInfo* | ||
239 | 257 | } |
240 | 258 | prevData = data; |
241 | 259 | |
242 | - // Interval | |
260 | + // Intermediate | |
243 | 261 | for(z=1; z<in->HeaderN.z-1; z++) { |
244 | - data = 1; | |
245 | - for(srcy=miny; srcy<maxy; srcy++) { | |
246 | - for(srcx=minx; srcx<maxx; srcx++) { | |
247 | - mrcPixelDataGet(in, srcx, srcy, z, &data0, mrcPixelRePart, mrcPixelHowNearest); | |
248 | - data *= data0; | |
249 | - } | |
250 | - } | |
251 | - //mrcPixelDataGet(in, x, y, z, &data, mrcPixelRePart, mrcPixelHowNearest); | |
262 | + linfo->cur.z = z; | |
263 | + data = lmrcImageMeanFreePathCalcBWEvaluation(in, linfo, mode); | |
252 | 264 | |
253 | 265 | if(0<prevData) { |
254 | 266 | if(0<data) { // White continue |
@@ -306,14 +318,8 @@ lmrcImageMeanFreePathCalcAlongZaxis(mrcImage* in, lmrcImageMeanFreePathCalcInfo* | ||
306 | 318 | |
307 | 319 | // End |
308 | 320 | z = in->HeaderN.z-1; |
309 | - data = 1; | |
310 | - for(srcy=miny; srcy<maxy; srcy++) { | |
311 | - for(srcx=minx; srcx<maxx; srcx++) { | |
312 | - mrcPixelDataGet(in, srcx, srcy, z, &data0, mrcPixelRePart, mrcPixelHowNearest); | |
313 | - data *= data0; | |
314 | - } | |
315 | - } | |
316 | - //mrcPixelDataGet(in, x, y, z, &data, mrcPixelRePart, mrcPixelHowNearest); | |
321 | + linfo->cur.z = z; | |
322 | + data = lmrcImageMeanFreePathCalcBWEvaluation(in, linfo, mode); | |
317 | 323 | |
318 | 324 | if(0<prevData) { |
319 | 325 | if(0<data) { // White continue |
@@ -412,3 +418,41 @@ lmrcImageMeanFreePathCalcAlongZaxis(mrcImage* in, lmrcImageMeanFreePathCalcInfo* | ||
412 | 418 | DEBUGPRINT1("mode: %d in Calc: RealLength End\n", mode); |
413 | 419 | } |
414 | 420 | } |
421 | + | |
422 | + | |
423 | +double | |
424 | +lmrcImageMeanFreePathCalcBWEvaluation(mrcImage* in, lmrcImageMeanFreePathCalcInfo* linfo, lmrcImageMeanFreePathCalcMode mode) | |
425 | +{ | |
426 | + double data, data0; | |
427 | + mrcImageParaTypeReal srcx, srcy; | |
428 | + | |
429 | + switch(linfo->LineShape) { | |
430 | + case lmrcImageMeanFreePathCalcLineShapeRectangle: { | |
431 | + switch(linfo->LineMode) { | |
432 | + case lmrcImageMeanFreePathCalcLineModeAnd: { | |
433 | + data = 1; | |
434 | + for(srcy=linfo->min.y; srcy<linfo->max.y; srcy++) { | |
435 | + for(srcx=linfo->min.x; srcx<linfo->max.x; srcx++) { | |
436 | + mrcPixelDataGet(in, srcx, srcy, linfo->cur.z, &data0, mrcPixelRePart, mrcPixelHowNearest); | |
437 | + data *= data0; | |
438 | + } | |
439 | + } | |
440 | + break; | |
441 | + } | |
442 | + default: { | |
443 | + fprintf(stderr, "Not supported Line Mode: %d\n", linfo->LineMode); | |
444 | + exit(EXIT_FAILURE); | |
445 | + break; | |
446 | + } | |
447 | + } | |
448 | + break; | |
449 | + } | |
450 | + default: { | |
451 | + fprintf(stderr, "Not supported Line Shape: %d\n", linfo->LineShape); | |
452 | + exit(EXIT_FAILURE); | |
453 | + break; | |
454 | + } | |
455 | + } | |
456 | + return data; | |
457 | +} | |
458 | + |
@@ -16,6 +16,8 @@ Options: | ||
16 | 16 | [-O[utput]b[lack]e[dge]OutBlackEdge (NULL ).as(outFile::mrcImage ) ] :Optional :Output: blackEdge |
17 | 17 | [-l[ine]t[hickness] LineThicknessX (1 ).as(Real ) |
18 | 18 | LineThicknessY (1 ).as(Real ) ] :Optional :[pixel] |
19 | + [-l[ine]m[ode] LineMode (0 ).as(Integer ) ] :Optional :LineMode | |
20 | + [-l[ine]s[hape] LineShape (0 ).as(Integer ) ] :Optional :LineShape | |
19 | 21 | [-c[onfig] configFile (NULL ).as(inFile ) ] :Optional :ConfigurationFile |
20 | 22 | [-m[ode] mode (0 ).as(Integer ) ] :Optional :Mode |
21 | 23 | ----- Additional Usage ----- |
@@ -14,8 +14,10 @@ | ||
14 | 14 | -O 1 0 1 0 0 1 -1x1+1+7.500000 ' ' 'OutWhiteEdge' 'Output: whiteEdge' Owe |
15 | 15 | -O 1 0 1 0 0 1 -1x1+1+9.000000 ' ' 'OutBlackEdge' 'Output: blackEdge' Obe |
16 | 16 | -I 1 0 0 1 0 1 -1x1+1+10 ' ' '1' 'LineThicknessX' [pixel] |
17 | - -I 1 0 1 0 0 1 -1x1+1+12.000000 ' ' 'configFile' 'ConfigurationFile' c | |
18 | - -i 1 0 1 0 0 -1x1+1+13.500000 0 0 0 0 0 'mode' 'Mode' m | |
17 | + -i 1 0 1 0 0 -1x1+1+12.000000 0 0 0 0 0 'LineMode' 'LineMode' lm | |
18 | + -i 1 0 1 0 0 -1x1+1+13.500000 0 0 0 0 0 'LineShape' 'LineShape' ls | |
19 | + -I 1 0 1 0 0 1 -1x1+1+15.000000 ' ' 'configFile' 'ConfigurationFile' c | |
20 | + -i 1 0 1 0 0 -1x1+1+16.500000 0 0 0 0 0 'mode' 'Mode' m | |
19 | 21 | -E |
20 | 22 | -E |
21 | 23 | -E |
@@ -3,7 +3,7 @@ include ../../../Config/Define.inc | ||
3 | 3 | include ../../../../Config/Define.inc |
4 | 4 | include ../../../../../Config/Define.inc |
5 | 5 | |
6 | -all: help exec | |
6 | +all: help exec exec2 | |
7 | 7 | |
8 | 8 | help: |
9 | 9 | @echo "----- Help Message Check -----" |
@@ -14,6 +14,8 @@ usage(char* thisProgram) | ||
14 | 14 | fprintf(stderr, " [-O[utput]w[hite]e[dge]OutWhiteEdge (NULL ).as(outFile::mrcImage ) ] :Optional :Output: whiteEdge\n"); |
15 | 15 | fprintf(stderr, " [-O[utput]b[lack]e[dge]OutBlackEdge (NULL ).as(outFile::mrcImage ) ] :Optional :Output: blackEdge\n"); |
16 | 16 | fprintf(stderr, " [-l[ine]t[hickness] LineThicknessX (1 ).as(Real ) \n LineThicknessY (1 ).as(Real ) ] :Optional :[pixel]\n"); |
17 | + fprintf(stderr, " [-l[ine]m[ode] LineMode (0 ).as(Integer ) ] :Optional :LineMode\n"); | |
18 | + fprintf(stderr, " [-l[ine]s[hape] LineShape (0 ).as(Integer ) ] :Optional :LineShape\n"); | |
17 | 19 | fprintf(stderr, " [-c[onfig] configFile (NULL ).as(inFile ) ] :Optional :ConfigurationFile\n"); |
18 | 20 | fprintf(stderr, " [-m[ode] mode (0 ).as(Integer ) ] :Optional :Mode\n"); |
19 | 21 | additionalUsage(); |