RGB 画像があり、この画像に焦点が合っているかどうかを確認しようとしています。最初に 2D FFT を実行しましたが、ラジアル スペクトルをプロットしたとき、焦点が合っている画像と焦点が合っていない画像の間に明確な違いはありませんでした。画像の導関数を使用するように言われましたが、この新しいスペクトルをプロットすると、結果が期待どおりに見えません。これはより大きなプログラムの一部であるため、ここに疑似コードを書いています。これは完全なプログラムではありません。
%read the file and the part of the image I am working on
file='test1.jp2'
image_part=imread(file,'PixelRegion',{[xpixmin xpixmax],[ypixmin ypixmax]});
%derivatives
dx=diff(double(image_part),1,1);
dy=diff(double(image_part),1,2);
........
created tapers with Slepian sequences (dpss), multiplied with dx and dy and
then new outcome is tap_dx,tap_dy
.......
%FFT
fft2_dx=fft2(tap_dx)
fft2_dy=fft2(tap_dy)
%magnitude and fftshift
fft2_abs_dx=fftshift(abs(fft2_dx))
fft2_abs_dy=fftshift(abs(fft2_dy))
%to take the radial spectrum average the Fourier spectrum over the different
frequencies(fr)
avg_dx=mean(fft2_abs_dx(fr))
avg_dy=mean(fft2_abs_dy(fr))
plot(fr,avg_dx+avg_dy)
微分を行う前に、ラジアル プロットは最大点から始まり、単調に最小値まで下降します。導関数をプロットすると、放射状プロットは最大点から始まり、次に最小点に移動し、再び増加しますが、これは正しくないようです。この手法を使用して、画像の焦点が合っているか焦点が合っていないかを調べようとした人はいますか? それに関連する参照は見つかりませんでした。
このプロジェクトの目的は、画像の焦点を修正することではなく、画像の焦点が合っていないかどうか、および自動化された方法を使用してそれを拒否するかどうかを判断することです。
前もって感謝します。