как вычислить процент сходства между гистограммами (вектор признаков)

Мне нужно сравнить и вычислить сходство между гистограммами локального двоичного шаблона (LBP) изображений в градациях серого для распознавания лиц.

Вычисленная гистограмма имеет форму массива и использует Accord.net для ее вычисления.

(Гистограмма имеет форму int [,][], и когда я получаю гистограмму с использованием точки останова, я получаю int [3,3][256], поэтому они представляют собой комбинацию [0,0], [0,1], [0,2], [1,0] ...... [2,1], [2,2] и внутри массива [,], есть 256 values от 0 до 255)

Мой код для получения гистограммы таков;

//LBP setting is default which are;
//Cell size of the histogram is 6 pixcel
//Block size of the histogram is 3 cells
 private int [,][] histo (BitmapSource croppedImage)
 {
     var converted = BitmapFromSource(croppedImage);
     var output = LBP.ProcessImage(converted);
     var qwert = LBP.Histograms;
     { LBP.ProcessImage(converted); };

     return qwert;
 }

Как я могу получить процент сходства между гистограммами?

Не могли бы вы просто дать мне подсказку, чтобы сравнить их?

Кроме того, у меня всего 48 гистограмм под 1 изображением. Есть ли эффективный способ объединить 48 гистограмм вместе для сравнения с другим набором из 48 гистограмм? и есть ли какие-либо рекомендации по эффективной библиотеке, которая затем Accord.Net вычисляла LBP гистограммы? Информации и документов по Accord.Net очень мало, и мне сложнее узнать об этом, так как я новичок.

Спасибо, что прочитали мой пост, и я очень ценю вашу помощь.


person BKBBKBBBK    schedule 03.07.2016    source источник


Ответы (1)


OpenCV — это ведущая библиотека обработки изображений, в которой реализовано множество широко известных алгоритмов. Она доступна в CSharp.

Для сравнения гистограмм хорошим методом является расстояние хи-квадрат. Он доступен в OpenCV.

Для вашего третьего вопроса, объединения гистограмм, вы должны нормализовать объединенную гистограмму в диапазоне [0-1] для лучшего сравнения.

person Muhammet Ali Asan    schedule 03.07.2016
comment
Я пытался использовать EmguCV для своей программы, но кажется, что он еще не такой мощный, как openCV. Для конкатенации части, как я могу продолжить ?? Я уже нормализовал гистограммы, но не знаю, как их объединить. Кстати, большое спасибо за ответ!! - person BKBBKBBBK; 04.07.2016