0以外の値を平均したいです

画像のRGB値からR値、G値、B値(それぞれ0以外の値)の平均値を算出したいです。ご教授よろしくお願いいたします。
下記のプログラムでは0も含んだ平均値となってしまいます
I = imread("");
R = double(I(:,:,1));
G = double(I(:,:,2));
B = double(I(:,:,3));
Rmean = mean2(R);
Gmean = mean2(G);
Bmean = mean2(B);

 Respuesta aceptada

Kenjiro Sugimoto
Kenjiro Sugimoto el 5 de Dic. de 2023

1 voto

こちらでいかがでしょうか。
R = [ 1, 0, 0; 0, 1, 0; 0, 0, 1 ];
Rmean = mean(R, "all")
Rmean = 0.3333
idx = (R ~= 0) % 非ゼロの箇所を取得
idx = 3×3 logical array
1 0 0 0 1 0 0 0 1
Rmean = mean(R(idx), "all")
Rmean = 1

1 comentario

宗樹 岡本
宗樹 岡本 el 5 de Dic. de 2023
ありがとうございました。

Iniciar sesión para comentar.

Más respuestas (0)

Productos

Versión

R2022a

Etiquetas

Preguntada:

el 5 de Dic. de 2023

Comentada:

el 5 de Dic. de 2023

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!