@@ -4529,6 +4529,10 @@ int sliceTimingCore(struct TDCMsort *dcmSort,struct TDICOMdata *dcmList, struct
4529
4529
4530
4530
int saveDcm2NiiCore (int nConvert, struct TDCMsort dcmSort[],struct TDICOMdata dcmList[], struct TSearchList *nameList, struct TDCMopts opts, struct TDTI4D *dti4D, int segVol) {
4531
4531
bool iVaries = intensityScaleVaries (nConvert,dcmSort,dcmList);
4532
+ if ((iVaries) && (opts.isForceStackSameSeries = 1 )) {
4533
+ printWarning (" Merging series even though intensity scaling varies between slices.\n " );
4534
+ iVaries = false ;
4535
+ }
4532
4536
float *sliceMMarray = NULL ; // only used if slices are not equidistant
4533
4537
uint64_t indx = dcmSort[0 ].indx ;
4534
4538
uint64_t indx0 = dcmSort[0 ].indx ;
@@ -5101,6 +5105,10 @@ int saveDcm2Nii(int nConvert, struct TDCMsort dcmSort[],struct TDICOMdata dcmLis
5101
5105
// this wrapper does nothing if all the images share the same echo time and scale
5102
5106
// however, it segments images when these properties vary
5103
5107
uint64_t indx = dcmSort[0 ].indx ;
5108
+ if ((dcmList[indx].isScaleOrTEVaries ) && (opts.isForceStackSameSeries = 1 )) {
5109
+ printWarning (" Merging series even though intensity scaling varies between slices.\n " );
5110
+ dcmList[indx].isScaleOrTEVaries = false ;
5111
+ }
5104
5112
if ((!dcmList[indx].isScaleOrTEVaries ) || (dcmList[indx].xyzDim [4 ] < 2 ))
5105
5113
return saveDcm2NiiCore (nConvert, dcmSort, dcmList, nameList, opts, dti4D, -1 );
5106
5114
if ((dcmList[indx].xyzDim [4 ]) && (dti4D->sliceOrder [0 ] < 0 )) {
0 commit comments