Классификация изображений на основе гистограммы с Weka
Я делаю проект по извлечению изображений на основе гистограммы, и мне нужно сравнить алгоритмы обучения для набора изображений. Итак, в MATLAB я преобразовал изображение (256x256 пикселей) в HSV, квантовал его в 8(H),3(S),3(V) и создал взвешенную сумму, которая является матрицей 256x256.
Я хочу использовать эту матрицу (из всех изображений в наборе данных) для создания файла ARFF, и я застрял в этой точке. Может кто-нибудь помочь мне с тем, как это должно быть сделано?
1 ответ
Если я понял, что вы сделали, вы взяли изображение в качестве входного (матрица 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