Для GLCM не имеет значения, где находится уровень 0, важны различия между интенсивностями. Таким образом, я бы выбрал метод, который линейно растягивается между минимальной и максимальной интенсивностью. Этот метод наилучшим образом использует выходной диапазон и поэтому вносит наименьшую ошибку квантования.
При сравнении результатов GLCM по изображениям лучше всего растягивать все изображения одинаково. Я бы выбрал глобальные min и max, оставив их постоянными для всех изображений в наборе.
Обратите внимание, что для других целей ответ будет другим.
При переключении ориентации, действие воссоздается, и onCreate вспоминают так, необходимо использовать пакет для сохранения текущего состояния и восстановления после изменения ориентации. Вы видите это в действии, если у Вас есть просто приложение с TextView, и Вы вводите ориентация изменения и текст. При связывании состояния для onCreate, можно обуздать это. Это, вероятно, также, почему у Вас есть NullPointer после того, как ориентация изменяется. Это является раздражающим как весь ад, но что-то мы должны жить с.
Этот ссылка на ряд учебных руководств по ориентации и это первое одно в особенности должно помочь Вам понять точно, что продолжается и как успешно поддержать Ваше текущее состояние.
Обновление: существует также сообщение на ТАК перезапуск Действия на вращении Android , которое имеет дело почти с тем же самым.
Редактирование для развивают вопрос:
Вы повторно прикрепляли свои обработчики щелчков после изменения ориентации?
Попробуйте следующее:
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putString(SOME_KEY, "blah blah blah");
}
@Override
public void onCreate(Bundle savedInstanceState) {
...
somevalue = savedInstanceState.getString(SOME_KEY);
...
}