Почему ImageStatistics.Значение Gray равно нулю?

#c# #null #histogram #aforge

#c# #null #гистограмма #aforge

Вопрос:

Я использую AForge.net и я хочу показать в текстовом поле значение стандартного отклонения. Следующий код не работает:

 AForge.Imaging.ImageStatistics stat = new AForge.Imaging.ImageStatistics(btm_1);
AForge.Math.Histogram gray = stat.Gray;
this.textB_1.Text = gray.StdDev.ToString();
  

Сбой со следующей ошибкой:

Ссылка на объект не установлена на экземпляр объекта.

Оба gray и stat.Gray равны нулю.

Комментарии:

1. Это не стандартное разделение . Это стандартное отклонение .

Ответ №1:

У вас было изображение в оттенках серого?

Ответ №2:

В официальной документации для Gray свойства говорится:

Примечание: Свойство допустимо только для изображений в оттенках серого (см. Свойство IsGrayscale).

Я предполагаю, что ваше изображение не является изображением в оттенках серого, и Gray свойство возвращает значение null. Было бы предпочтительнее, чтобы он выдавал InvalidOperationException , потому что это могло бы дать некоторое представление о причине ошибки, и это быстро привело бы к сбою.

Комментарии:

1. Наверняка у меня есть изображение в оттенках серого. Я бинаризую его с помощью threshold, а также использую детектор Canny Edge от Aforge. Это работает нормально, поэтому я удивлен, что у меня проблема с гистограммой.