電気電子情報工学専攻 岩橋政宏
iwahashi@vos.nagaokaut.ac.jp

３．ノイズ除去の方法

3.1 実例の紹介（MATLAB、Photoshop）
3.2 平滑化と鮮鋭化
3.3 線形フィルタ、畳み込み
3.4 非線形フィルタ、バイラテラル、ノンローカルミーン

Photoshop による現像の例
元の画像

明瞭化
2020.6/21 長岡市来迎寺,
13秒, f2.8, ISO6400, α7+FE24-70

色温度と露光を調整

かすみ除去（dehaze）

Photoshop （かすみ除去）

2020.7/19 長岡市寺泊, ネオワイズ彗星
20秒, f2.8, ISO12800, α7+FE24-70

元の画像

色温度とコントラストを調整

かすみ除去（dehaze）

Photoshop （平滑化）
OMD EM1, 1/640, f9.0, ISO100

元の画像

コントラストと色温度平滑化

彩度と露光を調整

平滑化

α7, 1/1000, f2.8, ISO100

元の画像

Photoshop （鮮鋭化）

元の画像

コントラスト調整

鮮鋭化・かすみ除去

コントラスト調整

鮮鋭化・かすみ除去

α7, 1/1000, f2.8, ISO100

元の画像

Photoshop （ノイズ除去）

元の画像

鮮鋭化・かすみ除去

ノイズ除去

高圧縮・鮮鋭化

ノイズ除去

α7, 1/1000, f2.8, ISO100

元の画像

ﾋｽﾄｸﾞﾗﾑ均等化と時間方向ﾌｨﾙﾀ
撮影場所：長岡技術科学大学体育館裏（車内から）MATLABで実装（長岡技術科学大学 岩橋研究室）

beforeafter①②

ヒストグラム均等化
時間方向の平滑化フィルタ（同じ画素位置で，異なるフレーム間で）時間方向の平滑化フィルタ
入力動画画素値の平均値

３．ノイズ除去の方法

3.1 実例の紹介（MATLAB、Photoshop）
3.2 平滑化と鮮鋭化
3.3 線形フィルタ、畳み込み
3.4 非線形フィルタ、バイラテラル、ノンローカルミーン

3.2 平滑化～

平均値フィルタ
平均値フィルタ
10610410411595861138569↑
3×3 近傍画素の平均値. で中心を置換する

中心 95 の近傍3×3画素

3×3画素

フィルタ係数1 1 1 1
∑ 1 1 1 ⊙91 1 1↑
要素の総和,↑
アダマール積（要素毎の積）,,,,,,,,

3×3 近傍画素=,近傍画素の平均値

3.2 平滑化～

平均値フィルタ

5×5 画素の平均

11×11 画素の平均

21×21 画素の平均

L=5

L = 11

L = 211 1 ⋯ 1
⋮ ⋱ ⋮
1 ⋯ 1

←L→

フィルタ係数← L →3.2 平滑化～

元の画像

手ブレ

フィルタ係数

11 2=120 ⋮15

フィルタ係数1 0 ⋯ 01 0 2 ⋯ 0=⋮120 ⋮ ⋮ ⋱0 0 ⋯ 15

← 15 →

3.2 平滑化と鮮鋭化元の画像

Sobelフィルタ

鮮鋭化された全域通過フィルタ

高域通過フィルタ

高域強調フィルタ

0000 01 00 0−1 0−2 0−1 0121−1 0−2 1−1 0121

I0=imread('barbara.bmp');
I0=double(I0)/255;
h=[-1 0 1; -2 1 2; -1 0 1];
I1=imfilter(I0,h);
imshow(I1);

鮮鋭化された高域強調フィルタ

−1 0−2 1−1 0121３．ノイズ除去の方法

3.1 実例の紹介（MATLAB、Photoshop）
3.2 平滑化と鮮鋭化
3.3 線形フィルタ、畳み込み、 ノイズ除去
3.4 非線形フィルタ、バイラテラル、ノンローカルミーン

インパルスとの畳み込み

＊＊

＊

畳み込み

畳み込み

畳み込み

インパルス

定数倍された
インパルス

シフトした
インパルス

＝

＝

＝そのまま定数倍右へシフト畳み込みの線形性（線形フィルタ）

＊

畳み込み

＊

＊

畳み込み＋畳み込み＝ フィルタ
係数
＝

＝＝＋

＝

線形フィルタの例

＊

＊

＊＝

＝

＝定数倍

エッジ検出

鮮鋭化

＊

＊

＊

＋0 01 00 0＋

＝000＝

＝
フィルタ係数

＝

エッジ検出

鮮鋭化

フィルタ係数フィルタ係数

0 0−1 10 0000

エッジ検出

＝

0 0−1 20 0000

鮮鋭化

３．ノイズ除去の方法

3.1 実例の紹介（MATLAB、Photoshop）
3.2 平滑化と鮮鋭化
3.3 線形フィルタ、畳み込み、 ノイズ除去
3.4 非線形フィルタ、バイラテラル、ノンローカルミーン

フィルタ～ℎ∑ ℎℎ

↑
要素の総和

畳み込み

フィルタ係数,,,ℎℎℎℎℎℎ,,,,=出力

3×3 近傍画素,,,⊙↑
アダマール積（要素毎の積）ℎ ,畳み込み,,,,,,,,,,=,

畳み込み を ｚ変換 で計算する
縦方向
横方向＊平滑化の微分12 ∗ −1 01

フィルタ係数

ｚ変換

1=

112
1−1 0−1−2−1−1 0 1= ∑ −2 0 2 ⨀−1 0 10 10 20 1Sobelfilter＝−1 0
1 = −2 0−1 01（＊は畳み込み）

12
1

1
1

要素ごとの積（アダマール積）の後に要素の総和をとる

1

畳み込み と 行列の積
22 −2
∗ 1 −1 =1
1 −110 00 20 10 00 10 022=
11−2−122 −2
1 −1 =
11 −1
2=
11 −1100 0−1 = 0 200 10−2−10 00 20 1−1 ∗00 00 ∗ 0 100 0

00 0 00 0−1 ∗ 0 2 0 = 0 200 1 00 1

畳み込みは可換

0−2−10 0
0 10 00 0 0 0
0 0 0
0 0 1 −1 = 0 2 −20 0 0 00 1 −10 0 0−1 0 20 0 100 0 0
0 = 0 1 000 0 0行列の積は非可換

畳み込み と 行列の積・微分 1 −1 を２回行う
・畳み込みで表すと...
10 00 10 0−1 ∗ 1−1= 1 −2100 0−1 ∗ 1 −100 000 00 = 1 −200 00100 0 00 0 00 0
1 −1 0 ∗ 0 1 −1 = 1 −20 0 00 0 00 0

10 00 10 00
10

畳み込みの結果はすべて同じ−1 1 −1 = ⋯0 0 0 00 0 0=−1 1 −1 0
1 −1 00 0 0 00 0 0

0 0 0 0 0
1 −1 0 0 10 0 0 0 0行列の積と畳み込みは別のもの

00 0 0−1 = 0 −1 100 0 0

畳み込み （信号 と フィルタ係数）=ℎℎ ℎ ∗
フィルタ係数

畳み込みの定義= [ℎ=削除ℎ+ℎ信号=ℎℎ+ℎ+ℎ

出力信号

ℎ+ℎℎ]

削除

畳み込み （ｚ変換で計算する）( )= ℎℎ== 1= ℎ=ℎ=∑ ℎℎ=ℎℎℎℎℎℎ+(ℎ削除1ℎℎℎℎ+ℎ← 伝達関数11← 入力信号は転置← 出力信号

1⨀11) +(ℎ要素ごとの積（アダマール積）の後に要素の総和をとる+ℎ+ℎ)

出力信号+(ℎ+ℎ12)+ℎ

削除

畳み込みの端点処理x =[11333]削除

h = [ 10 -1]

y=conv(x,h)

削除= [1101210-3-3]

w=conv(x,h,'same')=[101210-3]

x=[ 1112333 ]y0=conv(x,h0,'same')=[ 3＋y1=conv(x,h1,'same')=[ 445129 ]/40

48 11＋8 44916

畳み込みの線形性
h0 = [ 1-3]/4

y2=conv(x,h2,'same')=[ 70 -12]/4＝

h2 = [ 52= h0 + h1＝＝

h1 = [ 42 1]/4＋0 -4]/4(h0 + h1)*x = h0*x + h1*x1512-3 ]/4畳み込みの結合則
11233

h = [ 1 0 -1]

w=conv(x,h,'same')=[ 101210 -3 ]h = [ 1 0 -1]

y=conv(w,h,'same')=[ 0020-2-40 ]y=conv(x,g,'same')=[-1020-2-4-3 ]g = [10 -2 0=conv(h,h);1]＝

x=[ 13 ]同じ（端点は除く）(h*h)*x = h*(h*x)

畳み込みは可換
112333 ]

y0=conv(conv(x,h0,'same'),h1,'same')=[ 21232-1-6 ]/2

y1=conv(conv(x,h1,'same'),h0,'same')=[ 1122-1-9 ]/2＝

x=[ 1同じ（端点は除く）h0*h1 = h1*h0

畳み込みと相関このパターンがどの位置にあるか？

左右を反転させて，平均値を引いてからフィルタ処理する

x0=[ 1h0 = [ 323112333 ]1]

y0=conv(x0,h0)=[ 356914171893]

h1 = [ 10 -1]= h0 -mean(h0)y1=conv(x0,h1)=[ 1101210-3-3]

この位置にあるx0 と h1 の相関が最大

x1=[-1 -1 -1 0
= x0 -mean(x0)h1 = [ 1 0 -1]= h0 -mean(h0)y2=conv(x1,h1)=[-1-10

h1の平均がゼロならば、x1の平均が零でも非零でも、conv(x1, h1)には影響しない（但し、端点は除く）

1111 ]

21 0 -1 -1]↑x1 と h1 の相関が最大フィルタのＤＣ利得

フィルタ係数の和

・高域通過フィルタは，DC利得を０とする
・低域通過フィルタは，DC利得を１とする※ DC利得はフィルタ係数の総和
例
ソーベルフィルタ
平均値
フィルタ−1 0 1−2 0 2−1 0 1

1 1 1
1 19
1 1

1
1
1→ フィルタ係数の和＝０→ フィルタ係数の和＝１

フィルタ係数

３．ノイズ除去の方法

3.1 実例の紹介（MATLAB、Photoshop）
3.2 平滑化と鮮鋭化
3.3 線形フィルタ、畳み込み、 ノイズ除去
3.4 非線形フィルタ、バイラテラル、ノンローカルミーン

フィルタによるノイズ除去（概要）
h(0)

X(z)
z-1

h(1)

+Y(z)

フィルタ
ﾌｰﾘｪ変換ﾌｰﾘｪ変換ノイズの成分ノイズが消滅≒かける(logなので足す)① ノイズの性質
断面ノイズ

遅延足す

フィルタ消える（但し、２で割る）

② 信号の性質
断面遅延信号足す

フィルタ≒信号（但し、２で割る）③ ノイズの除去
断面信号

遅延足す

フィルタ

≒信号（但し、２で割る）

線形フィルタによるノイズ除去

信号

ノイズフィルタ

劣化フィルタ≒信号フィルタ

復元消える

線形フィルタによるノイズ除去
信号＋ ノイズ ＝フィルタ
ほぼ信号フィルタ

＋ ゼロ＝劣化
ノイズ除去
ほぼ信号フィルタの線形性

F[信号]≒信号＋ F[ノイズ] ＝ F[信号＋ノイズ]＝０≒信号

３．ノイズ除去の方法

3.1 実例の紹介（MATLAB、Photoshop）
3.2 平滑化と鮮鋭化
3.3 線形フィルタ（signal flow graph、伝達関数、周波数特性）
3.4 非線形フィルタ、バイラテラル、ノンローカルミーン

Signal Flow Graph (1/2)
IN
遅延

遅延

足す

足す

（２で割る）

OUT+

Signal Flow Graph (2/2)（２で割る）

ININ

遅延
遅延

（２で割る）

足す

OUT+OUT+1/2IN（２で割る）+遅延OUT

1/2

伝達関数とｚ変換 (1/2)
h(0)

X(z)
0.5

遅延0 1

フィルタ係数1121z-1h(1)+Y(z)H(z) = h(0)+h(1) z-1= 0.5 + 0.5 z-1伝達関数

伝達関数とｚ変換 (2/2)= (1 +=)/2

1 1 1

=+=

← 伝達関数+= 1+=( +++++( ) = { +( + )← 入力信号← 出力信号+++(/2) /2+ )+} /2

端点は削除

伝達関数と周波数特性= (1 += (1 +===∠()/2)/21+/2+2cos) = cos/22= − /2//← 伝達関数← 周波数特性
DC利得=1角周波数 ω← 振幅特性↑← 位相特性

伝達関数と周波数特性（他の例）= (1 += (1 +===∠()/2)/21+2+2cos← 伝達関数← 周波数特性DC利得=1角周波数 ω← 振幅特性↑) = cos=−← 位相特性

ゼロ位相のフィルタ=(=(+2++2+1= +2
1 + cos=2

偶対称かつ奇数タップのフィルタ係数∠+4()/4)/4

1 + cos
2=0) =← 伝達関数← 周波数特性← 振幅特性← ゼロ位相３．ノイズ除去の方法

3.1 実例の紹介（MATLAB、Photoshop）
3.2 平滑化と鮮鋭化
3.3 線形フィルタ、畳み込み、 ノイズ除去
3.4 非線形フィルタ、バイラテラル、ノンローカルミーン

信号 を スペクトル で捉える (1/2)

ﾌｰﾘｴ変換元の画像

スペクトルﾌｰﾘｴ変換
劣化した画像スペクトル

ノイズの原因信号 を スペクトル で捉える (2/2)

ﾌｰﾘｴ変換
復元画像

ノイズを除去スペクトル

ﾌｰﾘｴ変換
劣化した画像スペクトル

ﾌｰﾘｴ変換＊フィルタ係数ノイズの成分

かける

たたみこみ

かける

(logなので足す)

ﾌｰﾘｴ変換

ﾌｰﾘｴ変換ノイズが消滅≒≒1 0 0 00 1 120 0 0

ノイズの原因本当の畳み込み＊

実際の画像処理＊≒

出力の長さは入力より長い積の結果は零となる

出力の長さは入力と同じ積の結果は零ではない

３．ノイズ除去の方法

3.1 実例の紹介（MATLAB、Photoshop）
3.2 平滑化と鮮鋭化
3.3 線形フィルタ、畳み込み
3.4 非線形フィルタ、バイラテラル、ノンローカルミーン

original image

ウィナー フィルタ
wiener2(v,[3 3])

バイラテラル フィルタ
imbilatfilt(v)JPEGによる
圧縮ノイズ

メディアン フィルタmedfilt2(v,[3 3])

ノンローカルミーン
imnlmfilt(v)original image

ウィナー フィルタ
wiener2(v,[3 3])

バイラテラル フィルタ
imbilatfilt(v)ガウシアンノイズ

メディアン フィルタ
medfilt2(v,[3 3])

ノンローカルミーン
imnlmfilt(v)w=imread('image.jpg'));x = imnoise(w,'gaussian',0,0.01); % ガウスノイズを付加% x = imnoise(w,'poisson');% x = imnoise(w,'salt & pepper',0.05);% x = imnoise(y,'speckle',0.05);
for c=1:3
v=x(:,:,c);%v=medfilt2(v,[3 3]);%v= wiener2(v,[3 3]);%v=imbilatfilt(v);v=imnlmfilt(v);x(:,:,c)=v;
end% R,G,B各色にフィルタを適用% メディアン フィルタ% ウィーナー フィルタ% バイラテラル フィルタ
% ノンローカルミーン フィルタ

imshow(x);3×3 近傍の平均値ﾌｨﾙﾀ

画像 3 枚の平均値

異なる時刻の複数枚
・ 信 号 は全て同じ
・ﾉｲｽﾞは全て異なる
ﾉｲｽﾞの平均は零5×5 近傍の平均値ﾌｨﾙﾀ

画像 7 枚の平均値→ 加算平均同期加算メディアン（中央値）フィルタ,={6985|,86

95

106
104
104

N=3 の例, , ,104

104 106 113 115

115
95
86

113
85
69

ガウシアン･フィルタ=小さい順に並べて中央の値を出力

中心画素の近傍 N×N 画素
N=3 の例

3×3 画素,, , }1,,,= exp=

DC利得を1にする−(2+)

中心に近い位置の画素に大きな重み
0.37 0.61 0.37
0.61 1.00 0.61
0.37 0.61 0.37
=1

σ が小さい
≒ 全域通過フィルタ

0.78 0.88 0.78
0.88 1.00 0.88
0.78 0.88 0.78
=2,0.99 1.00 0.99
1.00 1.00 1.00
0.99 1.00 0.99
=10

σ が大きい≒ 平均値フィルタバイラテラル･フィルタ
=,

1,,,

=,bilateral filter

,

= exp

−(,−2,中心の画素値に近い値に大きな重み,DC利得を1にする

ノン ローカル ミーン フィルタ
non-local mean filter

注目画素
↓, =

↑
周辺画素,

1= exp,−,−ℎ,,

パッチ同士が似ていれば ※大きな重み,注目画素のパッチ,※ L2 ノルム（差の２乗和）が小さい

周辺画素のパッチ

ノイズの分散似ているならば重視する,= exp−max

を考慮する場合,−ℎ,−2,0)（中央値フィルタ）（非線形フィルタ）バイラテラルノンローカルミーン

３．ノイズ除去の方法

3.1 実例の紹介（MATLAB、Photoshop）
3.2 平滑化と鮮鋭化
3.3 線形フィルタ、畳み込み
3.4 非線形フィルタ、画質の定量評価

ガウシアン
ノイズを定量評価

PSNRとSSIM

原画像（ノイズなし）

PSNR - Peak-Signal to Noise Ratio（原画像との2乗誤差を対数で表示）
SSIM - Structural Similarity Index Measure （局所的な平均、標準偏差、相互共分散を考慮）

ＪＰＥＧ
圧縮ノイズ
を定量評価

PSNRとSSIM

原画像（ノイズなし）

PSNR - Peak-Signal to Noise Ratio（原画像との2乗誤差を対数で表示）
SSIM - Structural Similarity Index Measure （局所的な平均、標準偏差、相互共分散を考慮）

ガウシアン
ノイズを定量評価
BRISQUEとNIQE

原画像（ノイズなし）

参照画像
は不要

BRISQUE : Blind / Referenceless Image Spatial Quality Evaluator (BRISQUE)
NIQE : Naturalness Image Quality Evaluator (NIQE)

ＪＰＥＧ
圧縮ノイズ
を定量評価
BRISQUEとNIQE

原画像（ノイズなし）

参照画像
は不要

BRISQUE : Blind / Referenceless Image Spatial Quality Evaluator (BRISQUE)
NIQE : Naturalness Image Quality Evaluator (NIQE)

画質を定量的に評価する関数

マクロレンズのピンボケ解消
ピントがボケている↓
何処でもピントが合っている↑

ピントが合っている
ピントがボケている↓↑
ピントが合っている
マクロレンズで焦点距離を変えて複数枚を撮影
被写界深度が浅い → 焦点が合う箇所が限定される

複数画像を合成した
多焦点合成
多焦点深度合成
フォーカス合成
Focus Stacking

加算平均による天の川のあぶり出し
その他～ 複数枚を加算平均する加算平均でノイズを除去して綺麗な星景写真！
加算平均の方法と有効な使い方とは!?
https://camera-beginner.sakura.ne.jp/wp/?p=16058

ステライメージ４によるしあわせ画像処理「くっきりオリオン大星雲」
https://www.astroarts.co.jp/stella/shiawase/001/index-j.html

α7RⅢ, EF 24-70mm
F2.8, ISO 3200
2020.6.21 長岡市