资源简介
本代码使用多相位插值法实现图像缩放,实际上在4 x 4领域大小内进行多相位插值和三次插值几乎是一样的,只是对应插值函数值略微不同。多相位插值法是通过对输出点对应原图中的领域进行Lanczos2 函数移相插值来产生输出点的。
代码片段和文件信息
%Polyphase scaler算法(该算法采用Lanczos2算法)
%Taps_H=4
%Taps_V=4
%Phase_H=4
%Phase_V=4
clear all;
A = imread(‘test_edge3.bmp‘);
A = double(A);
A = rgb2yuv(A);
imgA = uint8(A);
% interpolation scaler
Hm = 640;
Hd = 3840;
Vm = 480;
Vd = 2160;
[mn] = size(A(::1)); %get the length and width
A(::1) = A(::1);
for j=1:n
if(mod(j2)==0)
A(:j2) = A(:j-12);
A(:j3) = A(:j-13);
else
A(:j2) = A(:j2);
A(:j3) = A(:j3);
end
end
k = m*Vd/Vm;
l = n*Hd/Hm;
w33 = [-1/8 -1/8 -1/8;
-1/8 1 -1/8;
-1/8 -1/8 -1/8];
B = zeros(34); %horizotal interpolation
C = zeros(kl3);
%%%%%%%%%%%% xilinx v_scaler.pdf %%%%%%%%%%%%%%%%%%%%%%%%
%% Subsample a Sinc function and create 2D array
%num_h_taps = 4;
%num_v_taps = 4;
%num_taps = 4;
%num_phases = 8;
%coef_width = 16;
%x=-(num_taps/2):1/num_phases:((num_taps/2)-1/num_phases);
%COE_y=2*(sin(pi*x).*sin(pi*x/2))./(pi^2*x.^2);
%coefs_2d=reshape(sinc(x) num_phases num_taps)
format long
% Normalize each phase individually
%for i=1:num_phases
% sum_phase = sum(coefs_2d(i:));
% for j=1:num_taps
% norm_phases(i j) = coefs_2d(i j)/sum_phase;
% end
% % Check - Normalized values should sum to 1 in each phase
% norm_sum_phase = sum(norm_phases(i:))
%end
%% Translate real to integer values with precision defined by coef_width
%int_phases = round(((2^(coef_width-2))*norm_phases))
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
for j = 1 : l
Hi = j*Hm/Hd;
xHi = double(uint16(Hi));%整数部分
u = Hi - xHi; %小数部分
% u = floor(j*Hm./Hd); %取余运算
for i= 1 : k
Vi = i*Vm/Vd;
xVi = double(uint16(Vi));%整数部分
v = Vi - xVi; %小数部分
% v = floor(i*Vm./Vd); %取余运算
if( (uint16(xHi) < n-4) & (uint16(xVi) < m-4) & (uint16(xHi) > 1) & (uint16(xVi) > 1))
src44 = [A(uint16(xVi-1)uint16(xHi-1)1) A(uint16(xVi-1)uint16(xHi )1) A(uint16(xVi-1)uint16(xHi+1)1) A(uint16(xVi-1)uint16(xHi+2)1);
A(uint16(xVi )uint16(xHi-1)1) A(uint16(xVi )uint16(xHi )1) A(uint16(xVi )uint16(xHi+1)1) A(uint16(xVi )uint16(xHi+2)1);
A(uint16(xVi+1)uint16(xHi-1)1) A(uint16(xVi+1)uint16(xHi )1) A(uint16(xVi+1)uint16(xHi+1)1) A(uint16(xVi+1)uint16(xHi+2)1);
A(uint16(xVi+2)uint16(xHi-1)1) A(uint16(xVi+2)uint16(xHi )1) A(uint16(xVi+2)uint16(xHi+1)1) A(uint16(xVi+2)uint16(xHi+2)1);];
src_u = [A(uint16(xVi-1)uint16(xHi-1)2) A(uint16(xVi-1)uint16(xHi )2) A(uint16(xVi-1)uint16(xHi+1)2) A(uint16(xVi-1)uint16(xHi+2)2);
A(uint16(xVi )uint16(xHi-1)2) A(uint16(xVi )uint16(xHi )2) A(uint16(xVi )uint16(xHi+1)2) A(uint16(xVi )uint16(xHi+2)2);
A(uint16(xVi+1)uint16(xHi-1)2) A(uint16(xVi+1)uint16(xHi )2) A(uint16(xVi+1)uint
相关资源
- matlab_OFDM调制解调(来自剑桥大学)
- Matlab路面裂缝识别69319
- 高灵敏度GPS接收机MATLAB仿真,附捕获
- 基于MATLAB的质点弹道计算与外弹道优
- 阵列天线的matlab仿真
- MATLAB 经典程序源代码大全
- MATLAB小波软阈值去噪代码33473
- 天线阵的波束形成在MATLAB仿真程序及
- 非线性SVM算法-matlab实现
- 《MATLAB 智能算法超级学习手册》-程序
- 组合导航matlab程序
- 读取txt文件内容matlab代码实现
- Matlab实现基于相关的模板匹配程序
- matlab优化工具箱讲解
- 基于MATLAB的快速傅里叶变换
- 光纤传输中的分布傅立叶算法matlab实
- 基于matlab的图像处理源程序
- matlab 椭圆拟合程序
- 算术编码解码matlab源代码
- optical_flow 光流法 matlab 实现程序
- 引导图像滤波器 Matlab实现
- 分形几何中一些经典图形的Matlab画法
- OFDM系统MATLAB仿真代码
- SVM工具箱(matlab中运行)
- 图像小波变换MatLab源代码
- LU分解的MATLAB实现
- 冈萨雷斯数字图像处理matlab版(第三
- 替代数据法的matlab程序
- 用matlab实现的多站定位系统性能仿真
- 通过不同方法进行粗糙集属性约简m
评论
共有 条评论