@@ -308,7 +308,7 @@ public void run(String paramString) {
308
308
}
309
309
310
310
// calculate new img array with applied displacements
311
- cumShift = buildShiftedIntervals (imageSet .imgs , imgs_shift ,shifts );
311
+ cumShift = buildShiftedIntervals (imageSet .imgs , imgs_shift , shifts );
312
312
313
313
//sumAndCount = AverageWithoutZero.sumAndCountArray(imgs_shift);
314
314
@@ -371,13 +371,14 @@ public void run(String paramString) {
371
371
372
372
imgs_avrg_out = getAlignedRAIs (shifts , true );
373
373
374
- IntervalView <FloatType > finalAver = AverageWithoutZero .averageArray (imgs_avrg_out , bIgnoreZeroInAveraging );
374
+
375
+ IntervalView <FloatType > finalAver = FinalOutput .averageArray (imgs_avrg_out , bIgnoreZeroInAveraging );
375
376
376
377
MiscUtils .wrapFloatImgCal (finalAver ,"final_average_" +Integer .toString (nIterMax ),imageSet .cal ,imageSet .bMultiCh ).show ();
377
378
IJ .log ("...done." );
378
379
//calculate STD image
379
380
IJ .log ("calculating final standard deviation image.." );
380
- IntervalView <FloatType > finalSTD = AverageWithoutZero .stdArray (imgs_avrg_out , finalAver , bIgnoreZeroInAveraging );
381
+ IntervalView <FloatType > finalSTD = FinalOutput .stdArray (imgs_avrg_out , finalAver , bIgnoreZeroInAveraging );
381
382
MiscUtils .wrapFloatImgCal (finalSTD ,"final_std_" +Integer .toString (nIterMax ),imageSet .cal ,imageSet .bMultiCh ).show ();
382
383
IJ .log ("...done." );
383
384
@@ -427,50 +428,6 @@ ArrayList<RandomAccessibleInterval< FloatType >> getMultiChAligned(final ArrayLi
427
428
return imgs_multiCh_reg ;
428
429
}
429
430
430
- /** given Sum and Count images alSumCnt, this function subtracts removedImage from Sum,
431
- * reduces corresponding Count voxels and returns averaged image (with coordinate origin at (0, 0, ..0) **/
432
- IntervalView <FloatType > removeOneAverage (ArrayList <IntervalView <FloatType >> alSumCnt , RandomAccessibleInterval < FloatType > removedImage )
433
- {
434
-
435
- long [] origin = alSumCnt .get (0 ).minAsLongArray ();
436
- final Img <FloatType > avrgImgArr = ArrayImgs .floats (alSumCnt .get (0 ).dimensionsAsLongArray ());
437
- final IntervalView <FloatType > avrgImg = Views .translate (avrgImgArr , origin );
438
- final IntervalView <FloatType > removeInt = Views .interval (Views .extendZero (removedImage ), avrgImg );
439
- Cursor <FloatType > avrgC = avrgImg .cursor ();
440
- Cursor <FloatType > remC = removeInt .cursor ();
441
- Cursor <FloatType > sumC = alSumCnt .get (0 ).cursor ();
442
- Cursor <FloatType > cntC = alSumCnt .get (1 ).cursor ();
443
- float fCnt , fRem , fSum ;
444
- while (avrgC .hasNext ())
445
- {
446
-
447
- avrgC .fwd ();
448
- remC .fwd ();
449
- sumC .fwd ();
450
- cntC .fwd ();
451
- fSum = sumC .get ().get ();
452
- fRem = remC .get ().get ();
453
- fCnt = cntC .get ().get ();
454
- if (fRem >0.0f )
455
- {
456
- fSum -=fRem ;
457
- fCnt --;
458
- }
459
-
460
- if (fCnt >0.5f )
461
- {
462
- avrgC .get ().set (fSum /fCnt );
463
- }
464
- else
465
- {
466
- avrgC .get ().set (0.0f );
467
- }
468
- }
469
-
470
- //return Views.zeroMin(avrgImg);
471
- return avrgImg ;
472
- }
473
-
474
431
475
432
/** given input image array imgs_in and shifts, generates corresponding array of applied shifted interval views imgs_out **/
476
433
public double buildShiftedIntervals (final ArrayList <RandomAccessibleInterval < FloatType >> imgs_in , final ArrayList <RandomAccessibleInterval < FloatType >> imgs_out , final ArrayList <long []> shifts )
@@ -557,9 +514,24 @@ public void medianCorrectShifts(final long [][] shifts_in)
557
514
public void processIntermediate (final int nIt )
558
515
{
559
516
ArrayList <RandomAccessibleInterval < FloatType >> imgs_avrg_out = getAlignedRAIs (shifts , true );
560
- String sName = "intermediate_average_" +Integer .toString (nIt );
517
+ String sName ="" ;
518
+
519
+ switch (nAveragingAim )
520
+ {
521
+ case TemplateAveraging .AVERAGE :
522
+ sName ="it_avg_" ;
523
+ break ;
524
+ case TemplateAveraging .MEDIAN :
525
+ sName ="it_med_" ;
526
+ break ;
527
+ case TemplateAveraging .MASKED_AVERAGE :
528
+ sName ="it_mask_avg_" ;
529
+ break ;
530
+ }
531
+
532
+ sName = sName +Integer .toString (nIt );
561
533
ImagePlus temp ;
562
- temp = MiscUtils .wrapFloatImgCal (AverageWithoutZero .averageArray (imgs_avrg_out , bIgnoreZeroInAveraging ),sName ,imageSet .cal ,imageSet .bMultiCh );
534
+ temp = MiscUtils .wrapFloatImgCal (FinalOutput .averageArray (imgs_avrg_out , bIgnoreZeroInAveraging ),sName ,imageSet .cal ,imageSet .bMultiCh );
563
535
if (bSaveIntermediate )
564
536
{
565
537
IJ .saveAsTiff (temp , sPathIntermediate +temp .getTitle ());
@@ -665,6 +637,15 @@ public boolean dialogSettings()
665
637
IJ .log ("Initial template: " + sIniTemplate [nIniTemplate ]);
666
638
667
639
IJ .log ("Template calculation: " + sAveragingAim [nAveragingAim ]);
640
+ if (nAveragingAim == TemplateAveraging .AVERAGE )
641
+ {
642
+ bIgnoreZeroInAveraging = false ;
643
+ }
644
+ if (nAveragingAim == TemplateAveraging .MASKED_AVERAGE )
645
+ {
646
+ bIgnoreZeroInAveraging = true ;
647
+ }
648
+
668
649
669
650
if (bZeroMask )
670
651
{
@@ -752,10 +733,6 @@ public boolean dialogSettings()
752
733
{
753
734
theDir .mkdirs ();
754
735
}
755
- //DirectoryChooser dc = new DirectoryChooser ( "Choose a folder to save intermediate averages..." );
756
- //sPathIntermediate = dc.getDirectory();
757
- //if(sPathIntermediate == null)
758
- //return false;
759
736
760
737
}
761
738
if (bOutputInput )
0 commit comments