L*a*b*色空間にて1成分を取り出し,黒い箇所を除いた合計と平均を取得したい
7 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
touka kakihara
am 23 Aug. 2021
Kommentiert: touka kakihara
am 25 Aug. 2021
以下のような画像があるとき,L*a*b*色空間に変換したのち,各L*,a*b*1成分づつ取り出し,各成分の合計値と合計値を黒い箇所を除く面積で割った平均を所得したいと考えております.
ご教授のほど、よろしくお願いいたします.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/718979/image.jpeg)
0 Kommentare
Akzeptierte Antwort
Shunichi Kusano
am 24 Aug. 2021
黒い部分の値はおそらくL=0,a=0,b=0になっていると思いますので(確認してみてください)、Labの各成分がその値に一致しているところを抜き出してきて、論理積を取れば黒い部分のマスクができます。
maskL = labImg(:,:,1) == 0;
maskA = labImg(:,:,2) == 0;
maskB = labImg(:,:,3) == 0;
mask = maskL & maskA & maskB;
マスクができれば、それ以外の画素の値を抽出できるので、その値から平均値を求めれば完了です。
[l,a,b] = imsplit(labImg); % チャンネルごとに分離
meanL = mean(l(~mask)); % 黒領域以外の画素値を抜き出してきて平均値を計算
meanA = mean(a(~mask));
meanB = mean(b(~mask));
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Convert Image Type finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!