ビデオフレームで平均シフトカラーベースの画像セグメンテーションを行っています。これが私のコードです:
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 関数の実行に時間がかかりすぎると通知します。代用できるものはありますか?