1
各行に画像座標ペアを保持する座標ベクトルcomp_points
があります。今度は、配列comp_windows
をnxm
-windowsの座標を中心にcomp_points
の配列で作成したいと思います。これらのウィンドウは、第3次元のcomp_windows
に沿って整列されます。 私はこのような課題を解決した:今、私は連結またはインデックス表現か何かを使用してfor
-loopせずにこれを行うことができますように私は感じるが、私はそれを把握することはできませんにベクトルをベクトル化して座標ベクトルから座標ウィンドウを構成する3次元配列を作成する
I2=randi([0 255],[500 500]);
comp_points=randi([10 490],[20 2]);
delta_u_window=5;
delta_v_window=5;
for ii=1:size(comp_points,1)
comp_windows(:,:,ii)=I2(...
comp_points(ii,1)-delta_u_window:...
comp_points(ii,1)+delta_u_window,...
comp_points(ii,2)-delta_v_window:...
comp_points(ii,2)+delta_v_window);
end
。
聖なる地獄。ベクトル化する価値はありますか?オクターブでは、解は* 0.005 *秒で実行され、forループは* 0.3 *秒で実行されます。私はarrayfunをベースにしたソリューションだが、それでもまだ0.3 *であった。あなたに私の帽子のヒント。これは美しく正しいコードです。 – Ash
@Ashうわー、よく私はここでベクトル化の力を過小評価したと思います!ベンチマークとフィードバックはもちろんありがとう! – Divakar
wooops、忘れて、このタイミングは* 10^4 *ポイントに相当します。 – Ash