2012-02-15 9 views
1

イメージがあり、イメージの異なるパッチの平均グレー値を計算します。 行と列のインデックスを使用してパッチを定義することから始めました。これは私のサブ画像がどこにあるかを指定する方法です。MATLABの行と列のインデックスによって指定されたサブイメージの平均グレー値を計算します。

for x = 10 : 1 : 74 
    for y = 30 : 1 : 94    
    ......... 
    end 
end` 

このサブ画像の平均グレー値はどのようにして計算できますか?私はこのすべての手段が平均(平均(画像))を見つけることを知っています。しかし、私は行と列の位置だけを持っているので、どのように私はこの同じ概念を適用することができます。

答えて

0

この

mean(mean(im(10:74,30:94))) 
+0

これはすばやく簡単です。ありがとうございました。 – Sista

0

イメージがMxNマトリックスであると仮定すると、サブマトリックスを作成して平均を計算するのはなぜですか?

例:

subimage = image(10:74, 30:94); 
mean_grey = mean(mean(subimage)) 
+0

ありがとうございました。私は本当にそれがサム画像を指定するのは簡単だということを知りませんでした。 – Sista

0

代替ソリューションを試してください:フラットカーネル(h)(あなたの 'サブ画像' のサイズ)と画像(I)を畳み込むと、結果の値を任意のインデックスで取得します。

h = ones(a,b); % sub-image is size a x b 
h = h/sum(h(:)); 
J = imfilter(I, h); 
% J(x,y) will give you the average of a sub-image centered on (x,y) 

エッジの場合は、(画像範囲外のサブ画像)の奇妙な行動を引き起こす可能性がありますが、これに対処するためにimfilterに第三引数を供給することができます。

関連する問題