Классификация изображений на основе гистограммы с Weka - PullRequest
2 голосов
/ 07 февраля 2012

Я делаю проект по извлечению изображений на основе гистограммы, и мне нужно сравнить алгоритмы обучения для набора изображений.Итак, в MATLAB я преобразовал изображение (256x256 пикселей) в HSV, квантовал его в 8 (H), 3 (S), 3 (V) и создал взвешенную сумму, которая является матрицей 256x256.

Я хочу использовать эту матрицу (из всех изображений в наборе данных) для создания файла ARFF, и я застрял в этой точке.Кто-нибудь может мне помочь с тем, как это должно быть сделано?

1 Ответ

1 голос
/ 07 февраля 2012

Если я понял, что вы сделали, вы взяли изображение в качестве входного (матрица 256x256 RGB) и преобразовали его в матрицу 256x256, где каждая позиция представляет собой взвешенную сумму значений HSV.

Однако, если вы хотитечтобы извлечь цветную гистограмму (которая в данном случае является подходящим входом для Weka), вы должны иметь в качестве выходного вектора, где каждая запись - это количество пикселей с заданными значениями H, S и L.

Поскольку у вас есть 8 различных значений для H (от 0 до 7), 3 для S (от 0 до 2) и 3 для L (от 0 до 2), ваш вектор V должен иметь 8 + 3 + 3 = 14 записей.Чтобы вычислить V, используйте следующий алгоритм:

Input: quantized HSL image I
Output: histogram V

for each pixel p in I:
   V[p.H] = V[p.H] + 1             // Increment the count for the H component.
   V[7 + p.S] = V[7 + p.S] + 1     // Increment the count for the S component.
   V[10 + p.L] = V[10 + p.L] + 1   // Increment the count for the L component.

return V
...