ImageName=’111.jpg';
F0=imread(ImageName,'jpg');
F0=im2double(F0);
(a) 原始图像 (b) 原始图像图3.1
(2) 读取图像生成第一幅参考图像LR1,不需要考虑运动,对点扩散函数进行高斯低通滤波,对双精度图像进行卷积滤波,先模糊,再抽样。
PSF = fspecial('gaussian',hsize,sigma);
F0 = imfilter(F0,PSF,'same','conv');
for m1 = 1:size(F0,1)/2,
for m2 = 1:size(F0,2)/2,
G0(m1,m2)=(F0(2*m1-1,2*m2-1)+F0(2*m1-1,2*m2)+F0(2*m1,2*m2-1)+F0(2*m1,2*m2))/4;
end
end
imwrite(G0,'LR1.jpg','jpg');
(a) 第一帧参考图像LR1 (b) 第一帧参考图像LR1
图3.2
(3) 通过像素的运动生成LR图像序列。根据运动矢量公式mcY,mcX分别为运动后像素点在HR网格中的位置;Y,X为参考图像像素点位置;u,v由参考图像指向当前的图像,X,mcX为列;Y,mcY为行;Y、X为运动前的坐标,mcY,mcX为运动后的坐标。 当前图像中坐标为(n1,n2)的点,在参考帧中的坐标为(N1,N2)。
u = k(num,1)+ k(num,2).*X + k(num,3).*Y ;
v = k(num,4)+ k(num,5).*X + k(num,6).*Y ;
mcX = X - u;
mcY = Y - v;
F=zeros(size(F0,1),size(F0,2));
for n1 = 1:size(F0,1)
for n2 = 1:size(F0,2)
N2 = mcY(n1,n2);
N1 = mcX(n1,n2);
(4) 最后加噪
G0=imnoise(G0,'gaussian',m,var);
最终分别各得到4幅低分辨率图像LR1,LR2,LR3,LR4。
(a) LR1 (b) LR2 (c) LR3 (d) LR4
图3.3 低分辨率图像序列
(a) LR1 (b) LR2 (c) LR3 (d) LR4
图3.4 低分辨率图像序列
(5)选取第一帧降质图像,进行双线性插值产生参考帧,读入下一帧低分辨率图像,与参考帧做精确亚像素估计。
(6)运用POCS算法进行超分辨率图像的重建
下面对实验进行设置,设置不同的运动模糊和噪声对原始测试图像进行降质,最终得到重建图像如图3.5所示(此次实验加入的高斯噪声均值为0)。
(a) 双线性插值获得的参考帧 (b) 双线性插值获得的参考帧
图3.5 表3.1 A与B图实验设置值
运动 模糊 噪声
情况1 (0,0),(0,1)(1,0),(1,1) 大小为3 3
方差为1 方差为0.00001
情况2 (0,0),(0,2)(2,0),(2,2) 大小为3 3 MATLAB铁路监控视频的超分辨率技术研究(12):http://www.youerw.com/tongxin/lunwen_2326.html