Я использую FreeMat , и у меня есть изображение RGB , которое представляет собой трехмерную матрицу, содержит столбцы и строки изображений и значения RGB для каждого пикселя.
Поскольку встроенной функции для преобразования изображения RGB в YIQ нет, я реализовал ее.Я придумал этот код:
Предположим, у меня есть 3D-массив, image_rgb
:
matrix = [0.299 0.587 0.114;
0.596 -0.274 -0.322;
0.211 -0.523 0.312];
row = 1:length(image_rgb(:,1,1));
col = 1:length(image_rgb(1,:,1));
p = image_rgb(row,col,:);
%Here I have the problem
mage_yiq(row,col,:) = matrix*image_rgb(row,col,:);
max_y = max (max(image_yiq(:,:,1)));
max_i = max (max(image_yiq(:,:,2)));
max_q = max (max(image_yiq(:,:,3)));
%Renormalize the image again after the multipication
% to [0,1].
image_yiq(:,:,1) = image_yiq(:,:,1)/max_y;
image_yiq(:,:,2) = image_yiq(:,:,2)/max_i;
image_yiq(:,:,3) = image_yiq(:,:,3)/max_q;
Я не могу понять, почему не удается умножить матрицу.Я хочу, чтобы код был красивым, а не просто умножал матрицу вручную ...