N1 = 5 %N1为要处理的图片张数
A = zeros(1,N1) %zeros()定义指定行列的零矩阵;A矩阵用来存储每一幅图像的清晰度原值
X = zeros(1,N1) %X用来存储做归一化处理后的函数值
%------------------------------
tic
for L=1: N1
I=imread([int2str(L),'.tif'])%读取图片,将值转换为字符串接受向量和矩阵输入
I=double(I)%精度存储问题
[M N]=size(I)%M等于矩阵行数,N等于矩阵列数;size()获取矩阵行列
FI=0 %变量,暂时存储每一幅图像的Brenner值
for x=1:M-2 %Brenner函数原理,计算相差两个位置的像素点的灰度值
for y=1:N
FI=FI+(I(x+2,y)-I(x,y))*(I(x+2,y)-I(x,y))
end
end
A(1,L) = FI
end
time=toc
%对原始数据做归一化处理,线性函数归一化公式
for W = 1:N1
C = max(A)
D = min(A)
E = C-D
R = (A(1,W) - D)/(E)
X(1,W) = R
end
%曲线拟合
x1=[-20 -10 0 10 20 ]
y1 = [X(1,1) X(1,2) X(1,3) X(1,4) X(1,5)]
[p,S]=polyfit(x1,y1,2) %polyfit(x,y,n)曲线拟合函数,已知离散点坐标拟合曲线;x,y横纵坐标,n为拟合阶数,一阶直线拟合,二阶抛物线拟合 ,返回幂次从高到低的多项式系数向量P,矩阵S用于生成预测值的误差估计
Y=polyconf(p,x1,y1)%置信区间
plot(x1,y1,'r')%画出拟合曲线,红线red
title('梯度评价函数')
xlabel('成像面位置')
ylabel('归一化后的图像清晰度评价值')
I=imread('D:\我的文档\MATLAB\cameraman.bmp')J0=imnoise(I,'gaussian')
J1=imnoise(I,'salt &pepper')
J0J3=imfilter(J0,fspecial('average'))
J0J5=imfilter(J0,fspecial('average',[5 5]))
J0Z3=medfilt2(J0)
J0Z5=medfilt2(J0,[5 5])
J1J3=imfilter(J1,fspecial('average'))
J1J5=imfilter(J1,fspecial('average',[5 5]))
J1Z3=medfilt2(J1)
J1Z5=medfilt2(J1,[5 5])
subplot(2,2,1),imshow(I)
title('原始图像')
subplot(2,2,2),imshow(J0)
title('加入零均值高斯噪声')
subplot(2,2,3),imshow(J1)
title('加入椒盐噪声')
figure,
subplot(2,2,1),imshow(J0J3)
title('对高斯噪声,采用3x3均值滤波')
subplot(2,2,2),imshow(J0J5)
title('对高斯噪声,采用5x5均值滤波')
subplot(2,2,3),imshow(J0Z3)
title('对高斯噪声,采用3x3中值滤波')
subplot(2,2,4),imshow(J0Z5)
title('对高斯噪声,宽拆采用5x5中慎纳枣值滤波')
figure,
subplot(2,2,1),imshow(J1J3)
title('对椒盐噪声,采用3x3均值茄败滤波')
subplot(2,2,2),imshow(J1J5)
title('对椒盐噪声,采用5x5均值滤波')
subplot(2,2,3),imshow(J1Z3)
title('对椒盐噪声,采用3x3中值滤波')
subplot(2,2,4),imshow(J1Z5)
title('对椒盐噪声,采用5x5中值滤波')
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)