Я делаю серию сегментации на основе цветного изображения на видеокадрах. Вот мой код:MATLAB: Как я могу избежать iamresize и VideoReader, если они занимают слишком много времени?
while hasFrame(v)
if k == 1
s(k).cdata = readFrame(v);
a = s(k).cdata;
I = imresize(a,[50,50]);
[means, Ims, Nms] = Ms(I,bw); %Mean Shift on first frame
Ims = im2uint8(Ims);
s(k).cdata = Ims;
else
s(k).cdata = readFrame(v);
a = s(k).cdata;
I = imresize(a,[50,50]);
[Ims,data2cluster]= MeanShiftCluster2(I,means); % simple segmentation based on norm using means of first frame
Ims = im2uint8(Ims);
Ims = imresize(Ims,[500,720]);
s(k).cdata = Ims;
end
k=k+1;
end
Я посылаю первый кадр для среднего осуществления сдвига, а затем, используя те же в результате чего средств для всех остальных кадров для расчета их соответствующих кластеров на основе евклидова расстояния (Мои кадры имеют незначительные изменения).
Проблемы: Профилировщик сообщает, что функции iamresize и VideoReader слишком долго выполняются. Есть ли какая-нибудь замена, которую я могу использовать?