帧相关原理及代码.docxVIP

  • 0
  • 0
  • 约3.2千字
  • 约 6页
  • 2026-02-02 发布于陕西
  • 举报

用Matlab或者C语言读入一幅B超图像,分5次加随机噪声,形成5张带随机噪声的图片,然后再通过帧相关处理,比较处理前后的图像质量,并计算图像的均方误差,验证是否为5倍的关系。

一、帧相关处理的原理

关于MSE(均方误差,MeanSquareError):

假设有m行n列的原始图像f(x,y),添加加性噪声n(x,y)后,得到含噪图像

g

则此时单张含噪图像的均方误差为:

MSE

以5帧相关为例,进行帧相关处理之后,可以得到处理后的含噪图像:

g

此时帧相关处理后的含噪图像的均方误差为:

MSE(

若噪声满足独立同分布于N,则有:

1

从而易得:MSE

这即是帧相关处理的原理。

需要指出的是,即使噪声满足独立同分布于N,但是在样本空间采样时存在随机性,即(*)式不一定恰好取等,从而最终得到的结果会存在误差,是正常的。

二、代码验证

验证用代码见附件,输出结果(可以自定义帧相关的帧数量)如下:

第1张加噪图像的MSE:992.7641

第2张加噪图像的MSE:1004.8603

第3张加噪图像的MSE:998.3696

第4张加噪图像的MSE:1001.44

第5张加噪图像的MSE:1008.011

第6张加噪图像的MSE:995.9023

第7张加噪图像的MSE:1001.8613

第8张加噪图像的MSE:1002.4604

第9张加噪图像的MSE:1003.0949

帧相关图像的MSE:111.0179

所有噪声图像MSE的均值与帧相关图像MSE的比值:9.0163

可以发现经过帧相关(9帧)处理之后,噪声均方误差为降低为原先的1/9。

需要指出,对于存在上下限的图像数组,添加噪声之后很可能会出现溢出的问题。因此在验证帧相关的去噪效果时,可先将图像的灰度范围进行压缩,保证添加噪声之后不会溢出。但事实上,以上的结果对于幅值较大的噪声仍然存在溢出问题,对于代码中的取值,溢出的概率约为0.0038。

修改为:但事实上,以上的结果对于幅值较大的噪声仍然会出现溢出问题,对于代码中的图像灰度压缩范围和噪声标准差取值,在极端情况下,出现加噪后溢出的概率约为0.0038。对于真实图像,溢出概率更低。

(或者直接删除这个关于概率的表述就行,这个问题的定义不是很好,很难说清楚。)

三、代码(MATLAB)

%%%帧相关0418.m%%%

%设置生成的含噪图像数量M

M=9;

%读取图像并转换为double

img=imread(F.jpg);

%如果是彩色图像,转换为灰度图像

ifsize(img,3)==3

img=rgb2gray(img);

end

%将图像值从uint8范围(0-255)扩展到double范围(0-255)

img_double=double(img);

%线性映射到64到191的范围,以防添加噪声之后溢出

min_val=64;

max_val=191;

%将原始图像值线性映射到新范围

img_rescaled=min_val+(img_double/255)*(max_val-min_val);

%创建一个空矩阵,用于累加M张含噪图像

sum_noisy_img=zeros(size(img_rescaled),double);

%创建一个变量存储总的MSE

total_mse=0;

%创建一个图像显示区域

figure;

%添加噪声并累加

fori=1:M

%添加均值为0,标准差为32的高斯噪声

noisy_img=img_rescaled+randn(size(img_rescaled))*24;%标准差为24的高斯噪声

%保证噪声图像的值在0到255范围内

noisy_img=min(max(noisy_img,0),255);

%计算每张加噪图像的均值和与原始图像的MSE

mean_noisy=mean(noisy_img,all);

mse_noisy=mean((img_rescaled-noisy_img).^2,all);

%累加每张图像的MSE

total_mse=total_mse+mse_noisy;

%输出每张加噪图像的均值和MSE

%disp([第,num2str(i),张加噪图像的均值:,num2str(mean_noisy)]);

disp([第,

文档评论(0)

1亿VIP精品文档

相关文档