2016-05-06 9 views
0

私は、中心ピクセルと存在する各ピクセル間の強度距離(差)を見つけるために81 * 81ウィンドウをスライドさせる必要がある画像を持っています周囲の81 * 81のウィンドウでは、中心ピクセル座標と周囲のウィンドウに存在するピクセルの座標との間の差異である位置距離を知る必要があります。 forループを使用する場合は、この操作に4つのネストされたforループを使用する必要があります。この操作には、1つのイメージに対してほぼ1日かかることがあります。私は画像内に存在する各ピクセルについて81 * 81の強度差を保存し、同様に位置距離については4D変数を作成する傾向があります。誰も私にこれを行うための効率的な方法を提案することができます。ここで私はこのコードを書かれている方法です。画像のmatlabでスライディングウィンドウ機能を高速化する方法

I = imread('House.tiff'); 
YCbCr = rgb2ycbcr(I); 
YCbCr = double(YCbCr); 
YCbCr = imresize(YCbCr,[200 200]); 
[m n v] = size(YCbCr); 
Y = YCbCr(:,:,1); Cb = YCbCr(:,:,2); Cr =YCbCr(:,:,3); 
Y1 = padarray(Y,[20,20]); 
Cb1 = padarray(Cb,[20,20]); 
Cr1 = padarray(Cr,[20,20]); 
window_size = 41; 
p = (window_size-1)/2; 
Dl = zeros(m,n,41,41); Df = zeros(m,n,41,41); 
for x = 1:1:m 
    for y = 1:1:n 
     for a = -p:1:p 
      for b = -p:1:p 
Df(x,y,a+p+1,b+p+1)= abs(Y(x,y)-Y1(x+a+p,y+b+p))+ abs(Cb(x,y)- Cb1(x+a+p,y+b+p))+ abs(Cr(x,y)- Cr1(x+a+p,y+b+p));%% intensity distance 
Dl(x,y,a+p+1,b+p+1) = max(abs((x+p)-(x+a+p)),abs((y+p)-(y+b+p)));%% location distance 
      end 
     end 
    end 
end 

答えて

0

その81のx 81スライディングウィンドウのために、あなたはおそらく1 XとY「初期」のポイントを持っています。 80x80ウィンドウ内の重心の間に初期画像を切り取る新しい一時ウィンドウを作成すると仮定します。

new_image = image(X-40:X+40,Y-40:Y+40); 

これにより、新しい一時イメージが迅速に作成されます。

は、すべての道

for i=1:length(images) 
currentImage=image(i,1); 
new_image(i)=currentImage(X-40:X+40,Y-40:Y+40); 
end 
+0

あなたのご意見ありがとうございました...あなたのヒントは非常に有益です...私は、各ピクセルのすべての81 * 81値を保存する方法を提案できますか?ウィンドウがスライドするたびに異なる値になります。 ..再び元気です... –

+0

ありがとうございました。大変ありがとうございます@ 16per9これは実際にうまくいっています..... –

+0

@GauriDeshpandeもし私の答えがあなたを助けてくれたら幸いです。ありがとうと幸運 – 16per9

0

a)にお住まいの地域差行列が常に同じであるピクセルの値を保存するには - それはちょうどそれの単一81x81インスタンスを作成Y.には依存しません。

b)なぜこれらの出力をすべて保存する必要がありますか?このような大きなマトリックスのRAM使用率は、RAMよりむしろディスク(ページファイル)を読み書きしていることを意味します。おそらく、このアルゴリズムの「次の段階」で最適化を行い、この行列で実際に何をしているのか計算を減らす方が良いでしょう。あなたの次の段階に応じて、imfilterを使うことができます。

+0

ありがとう実際には、各ピクセルとその周囲のピクセルに存在するピクセルの確率を計算するために、すべての値を使用する必要があります。つまり、与えられたピクセルに対して、周囲のピクセルがどのような確率であるか周囲のウィンドウに表示されるので、すべての値を保持する必要があります。 –

関連する問題