白飛びを除いたL*a*b*値を求めたいです
Show older comments
以下のような白飛びしている写真があったとき、白飛びしている部分を黒く塗りつぶし,L*,a*,b*値の各成分の平均を測定したいと考えております.

白飛びしているという判断として
Im = imread('例-白飛び画像.jpeg')
sirotobi = rgb2gray(Im);
sirotobi(sirotobi>250) = 0 ; %輝度値250以上の画素を黒に
で輝度値250よりを白飛びとみなし上の画素を黒く塗り潰したいと考えております.
また
lab = rgb2lab(imread('例-白飛び画像.jpeg')); %RGB イメージを L*a*b* 色空間に変換
maskL = lab(:,:,1) == 0;
maskA = lab(:,:,2) == 0;
maskB = lab(:,:,3) == 0;
mask = maskL & maskA & maskB;
[l,a,b] = imsplit(lab);
meanL = mean(l(~mask)); % 黒領域以外の画素値を抜き出してきて平均値を計算
meanA = mean(a(~mask));
meanB = mean(b(~mask));
で各L*,a*,b*の黒部分を除き平均を出せるかと思うのですが,元画像に黒く塗りつぶした画素を反映させL*,a*,b*値を図るにはどのようによりすれば良いでしょうか.ご教授いただけますと幸いです.よろしくお願い致します.
Accepted Answer
More Answers (0)
Categories
Find more on ビッグ データの処理 in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!