ここにいくつかのスパースアパーチャ光学システムがあります。これらは、画像化された画像の復元効果を比較および評価するためによく使用され、さまざまな光学システムの画像化効果を評価するためにも使用できます。
最初のカテゴリは、一般的な画質評価アルゴリズムであり、任意の画像に適用できます。今回はコアではないので、式とコードを簡単に説明します。以下において、fは参照画像(元の画像)を表し、gは復元された画像を表す。サイズはm * nです。
(1)平均二乗誤差(MSE)
MSEおよび同じシリーズの二乗平均平方根誤差(RMSE)および平均絶対誤差(MAE)
f=imread('f.jpg');
g=imread('g.jpg');
MSE=mean2((double(f)-double(g)).^2);
%RMSE=sqrt(MSE);
RMSE=sqrt(mean2((double(f)-double(g)).^2));
MAE=mean2(abs(double(f)-double(g)));
便宜上、グレースケール画像を直接使用します。画像はuin8形式で読み取られるため、カラー画像を最初にグレースケール画像に変換できます。uint8(2)-uint8(22)=を防ぐために、画像はuint8形式で最小値は0です。 0(uint8)この種のエラーはダブルフォーマットに変更されます。RMSEはMSEから直接取得できます。
(2)ピーク信号対雑音比(PSNR)
信号対雑音比(SNR)は次のとおりであり、PSNRはMSEによって間接的に取得できます。
SNR=10*log10(sum(sum(double(f).^2))/sum(sum((double(f)-double(g).^2))));
PSNR=10*log10(255^2/MSE);
(3)情報エントロピー
Piはgのグレー値iの確率、maxはグレーレベル、通常は255であり、各グレー値の確率はヒストグラムから取得できます。
plist=imhist(g);
plist=plist/(sum(sum(plist)));
E=-sum(plist.*log2(plist));
(4)明快さ
書きやすくするために、fとgをdouble形式に変換します(最初に変換する必要があります)。
G=0;
f=double(f);
g=double(g);
for i=1:m-1
for j=1:n-1
G=G+(g(i+1,j)-g(i,j))^2+(g(i,j+1)-g(i,j))^2;
end
end
D=sqrt(G/2)/(m*n);
(5)相関係数
数学の相関係数です。0より大きく1より小さい場合は正の相関、0に等しい場合は無関係、-1より大きく0より小さい場合は正の相関です。は負の相関です。
式では、E [・]は数学的な期待値であり、平均値です。
% cormatrix=corrcoef(f,g);
% cor=cormatrix(1,2);
cor=mean2((f-mean2(f)).*(g-mean2(g)))/(sqrt(mean2(f.^2)-mean2(f)^2)*sqrt(mean2(g.^2)-mean2(g)^2));
(6)構造の類似性
C1とC2は2つの定数、miuは平均輝度(平均値)、sigma_xは標準偏差、sigma_fgはfとgの共分散を表します。このアルゴリズムは最も広く使用されており、Matlabも付属しているため、コードは簡単に入手できるため、繰り返しません。
2番目のカテゴリは、スパースアパーチャ光学システム用に提案されたアルゴリズムです。最初のカテゴリのメソッドと比較して、このタイプのメソッドは、スパースアパーチャまたは他のイメージングシステムを対象としており、使用されるアルゴリズムはより説得力があります。
(1)ピーク対積分サイドローブ比(PISLR)
PISLRは、イメージングシステムのPSF関数のメインピークに集中するエネルギーの量を表すアルゴリズムであり、PSFのメインローブ円の内側と外側のエネルギーの比率として定義されます。
PSF関数平面と3次元表面を以下に示します。
メインピーク(メインローブの円)は、3次元(平面)画像の中央で最も高い(明るい)部分と見なすことができ、その他の場所はサイドローブと見なされます。最初に行うことは、ピーク幅(直径)をメインピーク(メインローブ円)の限界として定義することです。ここで言及されている論文「スパースアパーチャ光学イメージングシステム画像復元アルゴリズム研究江ヤンチャオ」では、メインローブ円の直径は半値全幅(FWHM)の多重関係として表すことができます。
(注:論文「光学合成開口システムのイメージング性能の最適化と分析」の乗数は1.18です)
ピークFWHMは、FWHMおよびFWHMとも呼ばれ、関数の最大ピークに対応する最大値の半分である、関数の最大ピーク(最大値)の前後の2点に対応する関数値の幅です。 。つまり、関数の最大値は1であり、ピークの半分の高さの幅は、最大値に近い0.5の値を持つ2点間の距離です。
PSFは回転対称であり、PSFはMatlabで離散化(行列の形式でファイルを直接読み取る)として表されるため、実装では、最初に、最大値が関数を見つけて、この座標に対応する値が最大値の0.5倍未満になるまで右に検索します。トラバース長(0.5倍未満の最後の座標を含まない)は、離散化後のピークハーフハイト幅です。離散化の最小間隔は1です。サンプリングまたはフィッティングによって精度を向上させることができます。ピークの半値幅が得られ、メインローブ円の直径が得られます。前の式に従って、最終的なPISLRが得られます。また、離散化により、式の右辺の分子は基本的に次のようになります。ピーク座標からの距離で半径よりも小さい(以前に計算された、直径の半分のすべての座標に対応するPSF値の合計)、および分母は、より大きいすべての座標に対応するPSF値の合計に等しい半径。
[h,w]=size(Psf);
[r,c]=find(Psf==max(max(Psf)));
FHWM=0;
for i=c+1:w
if Psf(r,i)<0.5*max(max(Psf))
break
else
FHWM=FHWM+1;
end
end
wpeak=2.37*FHWM;
Smain=0;
Sside=0;
for i=1:h
for j=1:w
if sqrt((i-r)^2+(j-c)^2)<=0.5*wpeak
Smain=Smain+Psf(i,j);
else
Sside=Sside+Psf(i,j);
end
end
end
PISLR=10*log10(Smain/Sside);
(2)中高周波数MTF
オブジェクトのさまざまな周波数成分の伝送能力を反映します。一般的に、高周波数部分は物体の細部の移動を反映し、中周波数部分は物体のレベル移動状態を反映し、低周波数部分は物体の輪郭移動状態を反映します。MTFの中周波数と高周波数が低下する速度にはさまざまなイメージングシステムが現れるため、中周波数と高周波数の平均MTFを標準として使用して、イメージングシステムのイメージングパフォーマンスを測定できます。
OTFはPSFの正規化されたフーリエ変換によって取得され、MTFはOTFの係数です。
OTFは複素数行列であるため、その係数は、各要素の実数の2乗に虚数の2乗を加えた後、ルート記号に相当します。abs()関数を使用して、matlabで係数を直接表すことができます。 、したがって、計算は次のようになります。
OTF=fftshift(fft2(Psf))./(sum(sum(Psf)));
MTF=abs(OTF);
得られたMTFの3次元表面および周波数変化曲線:
中周波数および高周波数のMTFの計算式は次のとおりです。
rou_Dcとrou_dcは、それぞれシステムのカットオフ周波数とサブアパーチャのカットオフ周波数です。
ラムダは波長、Dはサブアパーチャの外接円の直径、dはサブアパーチャの直径、diは射出瞳から像面までの距離です。著者は料理を比較するため、頻度と行列の比例関係は手動でのみ確立できます。
[rm,cm]=find(MTF==max(max(MTF)));
di=10;
d=0.5;
D=1;
lambda=7e-10;
mtf=MTF(rm,cm:w);
DC=D/lambda/di;
dc=d/lambda/di;
midfre=0;
r=43;%截止频率对应的矩阵内的半径
for i=1:h
for j=1:w
if sqrt((i-rm)^2+(j-cm)^2)>=r && sqrt((i-rm)^2+(j-cm)^2)<=r*(DC/dc)
midfre=midfre+MTF(i,j);
end
end
end
midfre=midfre/(2*pi^2*(DC^2/dc^2-1));