背景ストーリー:
これは古いスクリプトです。同じオブジェクトのわずかに異なる 2 つの画像を比較して、カメラ自体のデータを取得する必要がありました。このスクリプトをオクターブで書いて試してみましたが、後で、オクターブの代わりに matlab を使用したよりも、matlab の方がはるかに高速に実行されることがわかりました。最近、オクターブをもう一度チェックすることにしましたが、速度比はまだ 1:1000 です。
質問:
- このアルゴリズムをベクトル化するにはどうすればよいですか?
- matlab (オクターブの対比) には、このコードを自動ベクトル化して 1000 倍高速に実行する方法がありますか? カラー画像 420X420 ピクセル サイズの場合、0.1 対 100 秒ですか?
脚本:
color_depth = 8;
number_of_colors = 3;
number_of_grey_levels = 2^color_depth;
Double_Distribution_0 =zeros(number_of_grey_levels,number_of_grey_levels,number_of_colors);
frame_A = 1+int16(imread('Path\image_A.tif'));
frame_1 = 1+int16(imread('Path\image_1.tif'));
[height,width]=size(frame_A(:,:,1));
number_of_pixels = width*height;
for k = 1:number_of_colors
tic
for i = 1:height
for j = 1:width
Double_Distribution_0(frame_1(i,j,k),frame_A(i,j,k),k) = 1 + Double_Distribution_0(frame_1(i,j,k),frame_A(i,j,k),k);
end
end
toc
end