Раньше я никогда не слышал о VTK , но вот оно.
Хорошая особенность программного обеспечения с открытым исходным кодом заключается в том, что вы можете напрямую проверять исходный код. Еще лучше, если есть веб-браузер контроля версий, мы можем поговорить об этом в Интернете следующим образом.
Давайте посмотрим vtkMassProperties
в вопросе. 5.0.4 использует r1.28 и 5.4.2 использует r1.30. Вот разница между r1.28 и r.30 . Часть, которая может повлиять на вычисления объема:
vol[2] += (area * (double)u[2] * (double)zavg); // 5.0.4
vol[2] += (area * u[2] * zavg); // 5.4.2
и
kxyz[0] = (munc[0] + (wxyz/3.0) + ((wxy+wxz)/2.0)) /(double)(numCells); // 5.0.4
kxyz[0] = (munc[0] + (wxyz/3.0) + ((wxy+wxz)/2.0)) /numCells; // 5.4.2
но все изменения выглядят хорошо для меня.
Следующими подозрительными являются vtkMarchingCubes
. Разница между r1.1.6.1 и 1,5 .
self->UpdateProgress ((double) k / ((double) dims[2] - 1)); // 5.0.4
self->UpdateProgress (k / static_cast<double>(dims[2] - 1)); // 5.4.2
и
estimatedSize = (int) pow ((double) (dims[0] * dims[1] * dims[2]), .75); // 5.0.4
estimatedSize = static_cast<int>(
pow(static_cast<double>(dims[0]*dims[1]*dims[2]),0.75)); // 5.4.2
Опять они исправляют вещи на кастинге, но выглядит нормально.
Смотри также vtkImageThreshold
. Разница между r1.50 и r1.52 .
lowerThreshold = (IT) inData->GetScalarTypeMin(); // 5.0.4
lowerThreshold = static_cast<IT>(inData->GetScalarTypeMin()); // 5.4.2
Есть еще куча, но все они - актеры.
Становится интереснее с vtkTIFFReader
. Разница между 1,51 и 1,63 . Как вы можете видеть по разнице номеров ревизий, в этом классе произошли некоторые изменения по сравнению с другими. Вот комментарии о регистрации:
- ENH: добавить имя для скаляров. Видна в Paraview.
- ENH: теперь в vtkDataArray появился новый суперкласс-vtkAbstractArray ...
- ENH: установить количество образцов по умолчанию на пиксель для файлов, в которых отсутствуют эти метаданные.
- ENH: читайте только то, что вам нужно.
- ENH: добавить поддержку многостраничного файла TIFF
- ENH: печать иваров
- BUG: TIFF Reader неправильно учел данные, закодированные RLE. Также, ExecuteInformation
перезаписал указанный пользователем интервал и происхождение.
- BUG: при чтении beach.tif (из текущих CVS VTKData) изображение загружается вверх ногами.
- STYLE: s / OrientationTypeSpecifiedFlag / OriginSpecifiedFlag / g и s / OrientationTypeSpecifiedFlag / SpacingSpecifiedFlag / g
- BUG: Reader неправильно обрабатывал экстенты.
- COMP: Исправление предупреждения.
- COMP: Избавиться от предупреждения.
Из количества изменений, которые были сделаны в vtkTIFFReader, я бы предположил, что разница в поведении исходит оттуда. Например, он мог начать распознавать ваш Tiff как другой формат и изменить значения внутреннего пикселя. Попробуйте распечатать значения пикселей и посмотрите, есть ли разница. Если значения пикселей изменились, maxthres=81
может быть слишком высоким.