Как уменьшить размерность данных?

У меня есть набор из 25 изображений с ярлыком "Зараженный" и 25 изображений с ярлыком "Нормальный". Я пытаюсь извлечь коэффициенты, основанные на комплексном вейвлет-преобразовании двойного дерева, как функции для каждого из изображений.

Мой код для получения коэффициентов с использованием DT-CWT ia выглядит следующим образом:

I = imread('infected_img1.jpg'); %read image
I = rgb2gray(I); %rgb ro gray-scale
L = 6; %no. of levels for wavelet decomposition
I = reshape(I',1,size(I,1)*size(I,2)); %change into a vector
I = [I,zeros(1,2^L - rem(length(I),2^L))]; %pad zeros to make dim(I) a multiple of 2^L
I = double(I);
dt = dddtree('cplxdt',I,L,'dtf3'); %perform DT-CWT
dt_Coeffs = (dt.cfs{L}(:,:,1) + 1i*dt.cfs{L}(:,:,2)); %extract coefficents at Level 6

Теперь, поскольку у меня есть еще 24 изображения для извлечения коэффициентов, я делаю этот блок для каждого из изображений. Моя конечная цель - добавить все векторы коэффициентов, сгенерированные в каждой итерации, для формирования матрицы. Но каждое изображение имеет тенденцию давать вектор коэффициента разного размера.

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

1 ответ

Как я уже упоминал в своем комментарии,

Вы не можете что-то сжать (т.е. удалить информацию) и при этом сохранить всю информацию.

Вместо этого вы можете заполнить все векторы длиной самого большого вектора, а затем объединить их для создания матрицы. Вы можете запрограммировать свой собственный метод, но в духе не изобретать колесо, которое я ранее использовал padcat(), Это очень легко использовать и прокладки с NaN но вы можете легко изменить это на 0,

Вот пример использования, который также содержит удобное преобразование из NaN в 0,

>> a = [1 2 3 4];
>> b = [1 2 3];
>> c = padcat(a, b);
c =

     1     2     3     4
     1     2     3   NaN
>> c(isnan(c)) = 0
c =

     1     2     3     4
     1     2     3     0
Другие вопросы по тегам