暗い ‘Lena’ 画素値(出力) output pixel value 250 “トーンマッピング” 200 100 50 0 tone mapped image とは? y x1 / 1/ 2 150 0 50 100 150 200 250 input pixel value 画素値(入力) original image All Rights Reserved / M.Iwahashi / Nagaoka University of Technology All Rights Reserved / M.Iwahashi / Nagaoka University of Technology 元の ‘Lena’ 明るい‘Lena’ 200 yx 1 150 100 1/ 50 0 tone mapped image 250 画素値(出力) output pixel value 画素値(出力) output pixel value 250 0 50 100 150 200 input pixel value tone mapped image 画素値(入力) y x1 / 2 150 100 50 0 250 original image All Rights Reserved / M.Iwahashi / Nagaoka University of Technology 200 0 50 100 150 200 input pixel value 250 画素値(入力) original image All Rights Reserved / M.Iwahashi / Nagaoka University of Technology 赤い ‘Lena’ ソラリゼーション y x1 / 200 150 100 50 0 tone mapped image 250 0 50 100 150 200 input pixel value 250 画素値(入力) output pixel value 画素値(出力) output pixel value 250 R 3 G 1 0.9 B 200 150 100 50 0 tone mapped image 0 50 100 150 200 input pixel value original image All Rights Reserved / M.Iwahashi / Nagaoka University of Technology 250 original image All Rights Reserved / M.Iwahashi / Nagaoka University of Technology 出現回数 H(x) ヒストグラム (8 個のビン) ヒストグラム 5000 0 100 200 画素値 x 原画像 確率密度 P(x) 1 0.8 0.6 0.4 0.2 0 0 100 200 画素値 x All Rights Reserved / M.Iwahashi / Nagaoka University of Technology ヒストグラム H(x) 10000 0 累積度数 F(x) 確率密度と累積度数 15000 All Rights Reserved / M.Iwahashi / Nagaoka University of Technology 確率密度 P(x) 0.2 0.15 0.1 0.05 0 0 100 200 画素値 x 確率密度 と 累積度数 4 階調の ‘Lena’ Max H (x) 画素の総数 出現回数 H(x) x 10 ヒストグラム H(x) x=Min,・・・,Max x Min ヒストグラム H(x) 2 1.5 1 0.5 0 画素の総数で割る 4 0 100 200 画素値 x 原画像 x F ( x) Max P (u ) u Min P( x) 1 x Min 確率密度 P(x) x=Min,・・・,Max 確率密度 P(x) 累積度数 累積度数 F(x) 1 0.8 0.6 0.4 0.2 0 0 100 0.2 0.1 0 200 確率密度 P(x) 0.3 0 100 画素値 x All Rights Reserved / M.Iwahashi / Nagaoka University of Technology All Rights Reserved / M.Iwahashi / Nagaoka University of Technology トーンマッピングによる確率密度の変化 50 0 0.01 100 50 0 0.02 yx 1/ 2 150 確率密度 P(x) 50 0 100 200 0.008 0.006 と P(x) で表せ 50 100 150 200 画素値 x 50 0 100 ヒント Q(y) dy = P(x) dx All Rights Reserved / M.Iwahashi / Nagaoka University of Technology 200 → ← dx 0.01 0.008 0.006 0.004 0.002 0 0.002 0 100 入力 x 画像 y 0.004 y f (x) 150 0 0.02 を f(x) 確率密度 P(x) 0.01 0.01 200 確率密度 Q(y) 入力 x All Rights Reserved / M.Iwahashi / Nagaoka University of Technology 100 0 確率密度 Q(y) 画像 y Q(y) 150 出力 y = f (x) 100 1/ 200 確率密度 P(x) 画素値 y 150 250 確率密度 200 画素値 y 出力 y = f (x) 250 200 → ← dy 暗い ‘Lena’ f(x) に依って どう変わるか 200 画素値 x 50 100 150 200 画素値 x 確率密度 P(x) トーンマッピングによる確率密度の変化 Q( y )dy P ( x)dx より、 Q( y ) P( x) dx dy トーンマッピングが P( x) dy dx 誤差 ここで、 y f ( x), dy f ' ( x) dx に及ぼす影響 なので、 Q( y ) 確率密度 Q(y) を f(x) と P(x) で表せた P( x) f ' ( x) All Rights Reserved / M.Iwahashi / Nagaoka University of Technology All Rights Reserved / M.Iwahashi / Nagaoka University of Technology テスト画像 + 誤差 トーンマッピングの後 MATLAB clear all; close all; トーンマッピング関数 250 % Fn1='C:¥Users¥iwa¥岩橋¥ソフトウェア¥標準画像¥mono¥'; % Fn2='lena.bmp'; % X=imread(strcat(Fn1,Fn2),'bmp'); y = f(x) 200 yx 3 150 100 1/ 50 0 暗い 領域 0 50 100 150 200 X=zeros(256,256); for i=1:256;for j=1:256; X(i,j)=double(j-1); end;end; x=0:255; X=double(X); Xd=X+(rand(size(X))-0.5)*64; G=3; y =x .^(1/G); Y =X .^(1/G); Yd=Xd.^(1/G); 250 x Mx=max(y); y =y /Mx*255; Y =Y /Mx*255; Y =flipud(Y'); Yd=Yd/Mx*255; Yd=flipud(Yd'); トーンマッピングの前 信号+誤差 x + e(x) % [Hx Bx]=hist(Xd(:),256); % [Hy By]=hist(Yd(:),256); Hy(1)=0; % Hx=Hx/sum(Hx); % Hy=Hy/sum(Hy); % subplot(2,2,1);plot(Hy,By,'.'); % xlabel('P(y)'); ylabel('y'); axis('tight'); % subplot(2,2,4);plot(Bx,Hx,'.'); % xlabel('x'); ylabel('P(x)'); axis('tight'); subplot(2,2,1);imshow(uint8(Yd)); subplot(2,2,4);imshow(uint8(Xd)); subplot(2,2,2); plot(x,y,'K','LineWidth',1.5); hold on; axis([-1 256 -1 256]); xlabel('x'); ylabel('y = f(x)'); All Rights Reserved / M.Iwahashi / Nagaoka University of Technology All Rights Reserved / M.Iwahashi / Nagaoka University of Technology 誤差のみ トーンマッピングの後 数理的な裏付け トーンマッピング関数 250 f ( x e( x )) f ( x ) y = f(x) 200 yx 3 150 100 1/ df ( x ) e( x ) dx x e(x) を仮定 なので 50 0 0 50 100 150 200 250 x 暗い領域の 誤差が大きい トーンマッピングの前 誤差 e(x) y f ( x e( x)) f ( x) df ( x) f ( x) e( x ) f ( x ) dx df ( x) e( x ) dx 接線の傾き All Rights Reserved / M.Iwahashi / Nagaoka University of Technology All Rights Reserved / M.Iwahashi / Nagaoka University of Technology まとめ 150 100 50 0.01 200 150 50 0 100 確率密度 Q(y) 接線の 傾き All Rights Reserved / M.Iwahashi / Nagaoka University of Technology ヒストグラムを 200 入力 x 信号+誤差 0.01 0.008 0.006 平滑化する x + e(x) 0.004 0.002 0 画像 y df ( x) dx 100 0 0.02 確率密度 P(x) 0 出力 y = f (x) → ← Δy 200 画素値 y y df ( x) e( x ) dx 250 出力の誤差 50 100 150 200 → ← e(x) ↑ x 画素値 x All Rights Reserved / M.Iwahashi / Nagaoka University of Technology 出力の誤差 Δy を f(x) と e(x) で表せた ヒストグラムの平滑化 ビンを 16個 に減らすと... 出力 出力 100 x されている 0 200 0 50 100 150 200 250 y 入力 入力 40 関数 f を 30 巧く選ぶと -3 P(x) x10 -3 100 y f (x) 50 0 100 x P(y) x10 150 0 確率密度 y = f(x) 200 30 20 10 0 200 入力 50 100 150 200 250 y P(x) x10 -3 確率密度 10 0 image x 50 100 150 200 250 x All Rights Reserved / M.Iwahashi / Nagaoka University of Technology 50 100 150 200 y されている -3 入力 200 100 50 100 150 200 x トーンマッピング関数の決定法 Q( y ) なので、 決めよ。 f ' ( x) y f (x) P ( x) Const. f ' ( x) Q ( y )dy P ( x )dx dy / dx f ' ( x ) より P( x) Const. 従って、 P(x) 20 0 200 image x 確率密度 が 一定となる Q( y ) 様に f(x) を 確率密度 30 20 All Rights Reserved / M.Iwahashi / Nagaoka University of Technology 入力 40 確かに 平滑化 40 0 出力 40 60 入力 50 100 150 200 250 x トーンマッピング関数の決定法 出力 100 x 10 All Rights Reserved / M.Iwahashi / Nagaoka University of Technology 250 0 20 0 image x y f (x) image y = f(x) 確率密度 見にくい 100 P(y) x10 10 確率密度 平滑化 -3 image y = f(x) 0 20 P(x) x10 y f (x) 200 30 y = f(x) -3 100 50 見やすい P(y) x10 150 出力 80 確率密度 y = f(x) 200 0 出力 40 確率密度 250 f ( x) x min P(u ) du Const. 確率密度 Q(y) が一定となる 様に f(x) が決定された All Rights Reserved / M.Iwahashi / Nagaoka University of Technology ← 結果は累積度数! 出力 d f(x) / dx 出力の誤差 d f(x) / dx 10 switch(SwIn); case 1; Fn2='couple.bmp'; case 2; Fn2='girl.bmp'; case 3; Fn2='lax.bmp'; case 4; Fn2='airplane.bmp'; case 5; Fn2='bridge.bmp'; case 6; Fn2='barbara.bmp'; case 7; Fn2='lena.bmp'; case 8; Fn2='test.bmp'; end; 8 6 4 Fn1='C:¥Users¥iwa¥岩橋¥ソフトウェア¥標準画像¥mono¥'; Xs=imread(strcat(Fn1,Fn2),'bmp'); Xs=NrmImg(double(Xs))*255; % signal Xd=Xs+(rand(size(Xs))-0.5)*64; % signal + noise 2 0 MATLAB clear all; close all; % SwTm=1; for SwIn=1:8; 0 image y = f(x + e) 100 x 200 noise in y 入力 入力の誤差 switch(SwTm); case 1; [Hx Bx]=hist(Xs(:),256); Hx=Hx/sum(Hx); f=0; for i=1:256; f=f+Hx(i); F(i)=f; end; end; F =F *255; Ys=F(uint8(Xs)+1); Yd=F(uint8(Xd)+1); [Hy By]=hist(Ys(:),2^8); Hy(1)=0; Hy=Hy/sum(Hy); Hy=Hy*1000; [Hx Bx]=hist(Xs(:),2^8); Hx(1)=0; Hx=Hx/sum(Hx); Hx=Hx*1000; figure(1);%---------------------- signal subplot(2,3,3);plot(By,Hy,'-'); xlabel('y'); ylabel('P(y) x10^{-3}'); axis('tight'); axis('square'); subplot(2,3,6);plot(Bx,Hx,'-'); xlabel('x'); ylabel('P(x) x10^{-3}'); axis('tight'); axis('square'); subplot(2,3,1);imshow(uint8(Ys)); xlabel('image y = f(x)'); subplot(2,3,5);imshow(uint8(Xs)); xlabel('image x'); x=floor(Bx); y=F(x+1); subplot(2,3,2); plot(x,y,'K','LineWidth',1.5); axis('square'); axis([-1 256 0 256]); xlabel('x'); ylabel('y = f(x)'); % % figure(2);%---------------------- signal + noise % subplot(2,3,3);imshow(uint8(Yd-Ys+128)); % xlabel('noise in y'); % subplot(2,3,6);imshow(uint8(Xd-Xs+128)); % xlabel('noise in x'); % % subplot(2,3,1);imshow(uint8(Yd)); xlabel('image y = f(x + e)'); % subplot(2,3,5);imshow(uint8(Xd)); xlabel('image x + e'); % % subplot(2,3,2); plot(x,Df(x,y),'-R','LineWidth',1.5); % hold on; axis('square'); % axis('tight'); xlabel('x'); ylabel('d f(x) / dx'); image x + e All Rights Reserved / M.Iwahashi / Nagaoka University of Technology noise in x pause; close all; end; All Rights Reserved / M.Iwahashi / Nagaoka University of Technology トーンマッピング 出力 カラー画像の各色 -3 P(y) x10 y = f(x) 200 100 0 0 output y = f(x) {R,G,B} それぞれを 100 x 40 20 0 200 入力 R,G,B 各色を別々に ヒストグラム平滑化 -3 200 150 100 50 0 input x All Rights Reserved / M.Iwahashi / Nagaoka University of Technology All Rights Reserved / M.Iwahashi / Nagaoka University of Technology 50 100 150 200 250 y 確率密度 P(x) x10 ヒストグラム平滑化 平滑化の後 50 100 150 200 250 x トーンマッピング 出力 平滑化の後 トーンマッピング 出力 平滑化の後 250 200 50 100 150 200 250 y 模様が 明瞭化 output y = f(x) 確率密度 -3 -3 P(x) x10 50 100 150 200 250 y 60 40 20 0 50 100 150 200 250 x input x トーンマッピング 出力 50 100 150 200 250 x 100 x 40 20 0 200 y = f(x) -3 100 60 入力 40 150 100 0 色調は 不自然 0 output y = f(x) -3 P(x) x10 100 x 100 30 20 10 0 200 入力 50 確率密度 60 40 20 0 50 100 150 200 250 x input x All Rights Reserved / M.Iwahashi / Nagaoka University of Technology 50 100 150 200 250 y 80 R,G,B 各色を別々に ヒストグラム平滑化 150 0 input x 200 確率密度 200 R,G,B 各色を別々に ヒストグラム平滑化 50 50 50 100 150 200 250 y 平滑化の後 250 -3 平滑化の後 P(y) x10 y = f(x) 200 All Rights Reserved / M.Iwahashi / Nagaoka University of Technology 10 入力 80 模様が 明瞭化 20 All Rights Reserved / M.Iwahashi / Nagaoka University of Technology トーンマッピング 0 30 0 200 50 All Rights Reserved / M.Iwahashi / Nagaoka University of Technology output y = f(x) 100 x R,G,B 各色を別々に ヒストグラム平滑化 100 input x 0 0 確率密度 150 0 出力 0 P(x) x10 入力 R,G,B 各色を別々に ヒストグラム平滑化 -3 50 0 P(y) x10 output y = f(x) 100 x 100 -3 0 150 P(x) x10 0 20 P(y) x10 100 40 200 40 y = f(x) -3 P(y) x10 y = f(x) 200 50 100 150 200 250 x トーンマッピング 出力 -3 P(y) x10 y = f(x) 200 平滑化の後 100 0 0 output y = f(x) 100 x 40 20 0 200 入力 確率密度 P(x) x10 -3 R,G,B 各色を別々に ヒストグラム平滑化 50 100 150 200 250 y 100 input x for c=1:3; Xs=X0(:,:,c); Xs=NrmImg(double(Xs))*255; % signal switch(SwTm); case 1; [Hx Bx]=hist(Xs(:),256); Hx=Hx/sum(Hx); f=0; for i=1:256; f=f+Hx(i); F(i)=f; end; end; F =F *255; Ys=F(uint8(Xs)+1); [Hy By]=hist(Ys(:),2^5); Hy(1)=0; Hy=Hy/sum(Hy); Hy=Hy*1000; [Hx Bx]=hist(Xs(:),2^5); Hx(1)=0; Hx=Hx/sum(Hx); Hx=Hx*1000; figure(1);%---------------------- signal subplot(2,3,3); if(c==1); plot(By,Hy,'-R'); end; if(c==2); plot(By,Hy,'-G'); end; if(c==3); plot(By,Hy,'-B'); end; hold on; xlabel('y'); ylabel('P(y) x10^{-3}'); axis('tight'); axis('square'); subplot(2,3,6); if(c==1); plot(Bx,Hx,'-R'); end; if(c==2); plot(Bx,Hx,'-G'); end; if(c==3); plot(Bx,Hx,'-B'); end; hold on; xlabel('x'); ylabel('P(x) x10^{-3}'); axis('tight'); axis('square'); x=floor(Bx); y=F(x+1); subplot(2,3,2); if(c==1); plot(x,y,'R','LineWidth',1.5); end; if(c==2); plot(x,y,'G','LineWidth',1.5); end; if(c==3); plot(x,y,'B','LineWidth',1.5); end; hold on; axis('square'); axis([-1 256 0 256]); xlabel('x'); ylabel('y = f(x)'); 50 0 MATLAB clear all; close all; % SwTm=1; for SwIn=1:1; % switch(SwIn); % case 1; Fn2='couple.bmp'; case 2; Fn2='girl.bmp'; case 3; Fn2='lax.bmp'; case 4; Fn2='airplane.bmp'; % case 5; Fn2='bridge.bmp'; case 6; Fn2='barbara.bmp'; case 7; Fn2='lena.bmp'; case 8; Fn2='test.bmp'; % end; switch(SwIn); case 1; Fn2='couple.bmp'; case 2; Fn2='girl.bmp'; case 3; Fn2='aerial.bmp'; case 4; Fn2='airplane.bmp'; case 5; Fn2='parrots.bmp'; case 6; Fn2='mandrill.bmp'; case 7; Fn2='lena.bmp'; case 8; Fn2='earth.bmp'; case 9; Fn2='balloon.bmp'; case 10; Fn2='milkdrop.bmp'; case 11; Fn2='sailboat.bmp'; case 12; Fn2='pepper.bmp'; case 13; Fn2='tree_log.bmp'; end; Fn1='C:¥Users¥iwa¥岩橋¥研究室¥ソフトウェア¥標準画像¥color¥'; % Fn1='C:¥Users¥iwa¥岩橋¥ソフトウェア¥標準画像¥color¥'; % Fn1='C:¥Users¥iwa¥岩橋¥ソフトウェア¥標準画像¥mono¥'; X0=imread(strcat(Fn1,Fn2),'bmp'); Y0(:,:,c)=Ys; end; 50 100 150 200 250 x All Rights Reserved / M.Iwahashi / Nagaoka University of Technology subplot(2,3,1); imshow(uint8(Y0)); xlabel('output y = f(x)'); subplot(2,3,5); imshow(uint8(X0)); xlabel('input x'); pause; close all; clear X0 Y0; end; All Rights Reserved / M.Iwahashi / Nagaoka University of Technology トーンマッピングする 255 6 LDR (HDR)画像を 7 5 LDR = f (HDR) 4 3 Tone Mapping 2 1 0 ハイダイナミックレンジ 256階調, 8bit, LDR HDR 画像から LDR 画像へ 0 0 200 400 HDR 600 0 6.5万階調, 16bit, 元のHDR All Rights Reserved / M.Iwahashi / Nagaoka University of Technology All Rights Reserved / M.Iwahashi / Nagaoka University of Technology 800 6.5万 べき関数 log(1 x ) x1 / 1 1 0.8 0.8 0.6 0.6 LDR LDR 対数関数 0.4 =1/2 0.2 0 0.2 0.4 0.6 0.8 =1 0.2 =2 0 0.4 =2 0 1 0 0.2 0.4 0.6 HDR HDR All Rights Reserved / M.Iwahashi / Nagaoka University of Technology All Rights Reserved / M.Iwahashi / Nagaoka University of Technology カラー画像のトーンマッピング xa x a ba Hill 関数 x a ( 1 + b aLDR )/ (xa+ b a) 1 0.8 0.6 0.4 a=1.0, b=1.0 a=1.2, b=0.1 a=4.0, b=0.1 0.2 0 0 0.2 0.4 0.6 HDRinput x normalized All Rights Reserved / M.Iwahashi / Nagaoka University of Technology 0.8 1 R,G,B,それぞれを 別々にトーンマッピング All Rights Reserved / M.Iwahashi / Nagaoka University of Technology 色褪せない トーンマッピング 0.8 1 色褪せないための工夫 HDRの赤, 緑, 青 LDRの赤, 緑, 青 x L ,c f ( x H ,c ) xH ,R x L, R x H ,G x L,G x L ,c Hill 関数 & フィルタ x L, B x H ,B f ( x H ,Y ) x H ,Y x H ,c &低域通過フィルタ Hill 関数 c {R, G , B} HDR白黒の輝度 R,G,B,それぞれを 別々にトーンマッピング 色褪せない トーンマッピング All Rights Reserved / M.Iwahashi / Nagaoka University of Technology Hill 関数& フィルタ All Rights Reserved / M.Iwahashi / Nagaoka University of Technology x H ,Y All Rights Reserved / M.Iwahashi / Nagaoka University of Technology &高域強調フィルタ
© Copyright 2024 ExpyDoc