信噪比计算公式
在探测小目标信噪比计算中,最常用的公式为:
S
N
R
=
(
g
T
−
g
B
)
σ
B
SNR =\frac{ ( g_T-g_B)}{ \sigma_B}
SNR=σB(gT−gB)
在背景图片已经确定的情况下,信噪比只涉及目标的均值取值.
若:
m
≤
S
N
R
≤
M
m\leq SNR \leq M
m≤SNR≤M
则:
g
B
+
σ
B
m
≤
g
T
≤
g
B
+
σ
B
M
g_B + \sigma_B m \leq g_T\leq g_B +\sigma_B M
gB+σBm≤gT≤gB+σBM
Matlab代码
D = imread('...');
%背景的均值
gB = mean(mean(D));
%求矩阵中所有元素的标准差
sigmaB = std2(D);
%SNR_ = (gB - gT)/sigmaB;
path = 'Targets\2\';
files = dir([path,'*.bmp'])%找格式为bmp的文件
%根据设定的信噪比阈值确定目标灰度均值的上下限
c1 = gB-std2(D)*M;
c2 = gB-std2(D)*m;
%初始化目标均值及满足条件的k
gT = [];
k = [];
%files为结构体变量,files(i).name为第i个对象的名称
num = size(files,1);
%记录满足信噪比条件的小目标在files中的位置;gT为所有小目标的均值
for i = 1:num
T = imread([path,'\',files(i).name]);
gt = mean(mean(T));
if (gt>c1)&&(gt<c2)
%记录满足条件的图片名称
k = [k,i];
end
gT = [gT,gt];
end
得到的k中包含每个满足条件的T在files中的位置,可以通过files(k(i)).name获得满足条件目标图片的名称,并添加到背景图像中。