1

それでも助けが必要です、答えは私が探していたものではありませんでした!

画像の各チャンネル(R、G、B)の平均グレースケールを取得する関数が必要です

ave = getAverageGreyScale(image)

aveは3要素のベクトルを返す必要があります。1つのチャネル(R、G、B)の平均グレースケールを持つそれぞれ:

[abc]
a=Rの平均グレー
スケールb=Gの
平均グレースケールc=Bの平均グレースケール

まだ助けが必要です!誰かが私にこれを手伝ってくれる?
前もって感謝します!

4

2 に答える 2

2

私はあなたが探していると思います

function [Ravg, Gavg, Bavg] = getAverageRGBValues(I)

Ravg = mean(mean(I(:, :, 1)));
Gavg = mean(mean(I(:, :, 2)));
Bavg = mean(mean(I(:, :, 3)));

rows x cols x 3私が行列であると仮定します(これは、たとえば、から得られるものですimread)。

于 2011-10-22T16:07:32.763 に答える
1

明確化後に編集:

次元1と2に沿った平均が必要です。次を使用します。

ave = mean(mean(image,2),1);

元の答え:

(使用法として)画像が最後の次元の長さが3の3次元行列である場合は、次のように使用できます。

ave=squeeze(mean(image,3)); %#compute the average value for each pixel along the third dimension

平均は輝度の概算ですが、赤、緑、青は輝度と等しくないため、最初に各色平面に異なる係数を掛けるのがより良いアプローチです。標準係数は次のとおりです。

  • 赤の場合は0.3
  • 緑の場合は0.59
  • 青の場合は0.11

したがって、コードは次のようになります。

ave=image(:,:,1)*0.3 + image(:,:,2)*0.59 + image(:,:,3)*0.11
于 2011-10-22T11:56:44.240 に答える