シンプル、高速、効果的な低照度画像強調方法

シンプル、高速、効果的な低照度画像強調方法

1. この記事は、優れた影除去効果を備えた、より実用的な方法を紹介します。これは、2004 年の Tao による論文から選択されています。タイトルは、「カラー画像の非線形強化のための統合された近隣依存アプローチ」です。興味のある友人は、注意深く読んでください。論文は短いのでそれほど難しくはなく、結果は良好です。
次に、論文のアイデアを簡単に紹介します
ここに画像の説明を挿入

図1
これは深刻な影のある画像です。明らかに、画像撮影の結果はあまり満足のいくものではありません。タオ氏の論文のアイデアを参照した結果、画像の暗い部分と影の部分を改善できることがわかりました。画像は削除できます。エッセイのアイデア

1.まず、RGB 色空間のカラー画像をグレースケール画像に変換し、画像を正規化して正規化 I(x,y) を取得します。これは次の式で線形に変化します (具体的には、なぜこれを使用しないのか)この種の線形変換を実際には理解していません) この論文の著者は、この変換により暗いピクセル (領域) の輝度が大幅に増加する一方で、明るいピクセル (領域) の輝度の強調は低いか、または負の強調になる可能性があることを意味しています。より良い結果を達成するために。

	a=0.24,b=0.5;
In(x,y)=(I(x,y)^a+(1-I(x,y))^b+I(x,y)^2)/2

2.次に、グレースケール強調画像 I(x, y) が、I(x, y) 上のさまざまなスケールのガウス カーネル関数で畳み込まれます。畳み込みの結果には、画像の隣接ピクセルの輝度情報が含まれます。画像の境界を処理するために相関を取ることができます。
ガウス カーネル関数の表現と畳み込み公式は次のとおりです。
G ( x , y ) = Ke e ( − ( x 2 + y 2 ) / c 2 ) G(x,y)=Ke^{(-( x ^2+y^2)/c^2)}G ( x ,y =_( ( ×2 +y2 )/c2 )ここで、 c はスケールまたはガウス周囲空間定数
I ' ( x , y ) = I ( x , y ) ∗ G ( x , y ) I'(x,y)=I(x,y)*G (x,y)' (x,y =( x ,y G ( x ,y

3.グレースケール イメージと中心ピクセル イメージ間のコントラスト強調を実行します。
R ( x , y ) = I n ( x , y ) r ( x , y ) R(x,y)=In(x,y)^{r (x,y)}R ( x ,y =I n ( x ,y r ( x , y )
r ( x , y ) = I ' ( x , y ) / I ( x , y ) r(x,y)=I'(x,y)/I(x,y)r ( x ,y =' (x,y ) / I ( x y

4.より良い画像効果を得るために、異なるスケールの複数の畳み込み結果に対して画像コントラスト強調が実行され、最終結果はこれらの複数のスケールの線形結合に基づきます。
R ( x , y ) = ∑ i 3 wi R i ( x , y ) R(x,y)=\sum_i^3w_iR_i(x,y)R ( x ,y =3w私はR私は( x ,y )
は通常 3 で十分ですが、この論文では wi (スケールに関連する) は 1/3 です。

5.処理の最初の数ステップの後、強化された画像が得られ、画像の影の除去効果がより優れていることがわかります。
ここに画像の説明を挿入
基本的に、画像の影部分が除去され、他のピクセルの明るさに影響を与えることなく、明るさが大幅に向上します。次に行うことは、画像の色を復元することです。

6.画像の色を復元するために、線形色復元プロセスを使用して強化されたカラー画像を取得することもできます。色復元の式は次のとおりです。
R j ( x , y ) = I j ( x , y ) I ( x , y ) ∗ λ R_j(x,y)={I_j(x,y)\over I(x ,y) }*\ラムダRj( x ,y =( x ,y j( x ,y )λ
λ \ラムダλ は3 つのバンドのトーンを調整します。この記事ではλ \lambda です。λの値は1 であり、結果も非常に良好です。
I j ( x , y ) I_j(x,y)j( x ,y )は、元のイメージの R、G、および B チャネルを指します。

7.色復元後の写真の結果ここに画像の説明を挿入上記の方法で色を復元すると、色、明るさ、細部のいずれにおいてもほぼ完璧な結果が得られ、非常に優れた効果が得られました。
それが 1 つのシーンだけに適しているわけではないことを証明するために、2 番目の画像が表示されます。ここに画像の説明を挿入上記 2 つの画像の表示を通じて、このような画像の効果は他の多くの方法を超え、特に優れていると思います。SSR (比較のためのシングルスケール Retinex 強調) を見てみましょう: Retinex アルゴリズムも画像の明るさをある程度向上させることができますが、その効果は明ら
​​かに Tao の方法ほどよくあり
ここに画像の説明を挿入MSRやMSRCR、効果はタオさんのやり方には絶対及ばないと思います。
以下は、論文の実装で使用される Matlab コードの一部です。MATLAB には多くの組み込み関数があるため、実装は難しくありません。

%%
%2019年10月20日-2019年10月21日
%论文:An Integrated Neighborhood Dependent Approach for Nonlinear Enhancement of Color Images
clc
clear
I=im2double(imread('three.png'));
I1=rgb2gray(I);
In=(I1.^(0.24)+(1-I1).*0.5+I1.^2)/2;
%通过高斯核对灰度增强图像做卷积运算
sigma=5;
window = double(uint8(3*sigma)*2 + 1);
G1=fspecial('gaussian',window,sigma);
Guass1=imfilter(I1,G1,'conv','replicate','same');
r1=Guass1./I1;
R1=In.^r1;
sigma=20;
window = double(uint8(3*sigma)*2 + 1);
G2=fspecial('gaussian',window,sigma);
Guass2=imfilter(I1,G2,'conv','replicate','same');
r2=Guass2./I1;
R2=In.^r2;
sigma=240;
window = double(uint8(3*sigma)*2 + 1);
G3=fspecial('gaussian',window,sigma);
Guass3=imfilter(I1,G3,'conv','replicate','same');
r3=Guass3./I1;
R3=In.^r3;
R=(R1+R2+R3)/3;
Rr=R.*(I(:,:,1)./I1);
Rg=R.*(I(:,:,2)./I1);
Rb=R.*(I(:,:,3)./I1);
rgb=cat(3,Rr,Rg,Rb);
imshow([I rgb]);

おすすめ

転載: blog.csdn.net/weixin_44690935/article/details/102680513