双线性插值实现图像缩放
2013-10-25 22:09
686 查看
今天去一个公司笔试,考了一个图像缩放的算法,双线性插值,当时没搞出来呀,
回来写了个程序仿真,实现了这个功能。
原理 ,参照百度百科(1)写的很详细。
对原图实现放大2*3倍,matlab代码仿真如下:
clear
img1=imread(lena.bmp');
img1=rgb2gray(img1);
img1=double(img1);
[row1,wide1]=size(img1);
row2=row1*2;
wide2=wide1*3;
img2=zeros(row2,wide2);
for y2=5:row2-5
for x2=5:wide2-5;
x=x2/3;
y=y2/2;
q11x=floor(x);
q11y=ceil(y);
q21x=ceil(x);
q21y=ceil(y);
q22x=ceil(x);
q22y=floor(y);
q12x=floor(x);
q12y=floor(y);
X2=ceil(x);% important,当出现如整数5 的时候,x2等于5,x1=4,也就是取当前的坐标和前面的一个坐标计算
X1=ceil(x-1);
Y2=ceil(y-1);%important
Y1=ceil(y);
R1=( X2-x) *img1(q11y,q11x)+(x- X1)*img1(q21y,q21x);
R2=(X2-x) *img1(q12y,q12x)+(x- X1)*img1(q22y,q22x);
fp=-( (Y2- y)*R1 + (y-Y1)*R2) ;
img2(y2,x2)=ceil(fp);
end
end
subplot(1,2,1);
imshow(uint8(img1));
subplot(1,2,2);
imshow(uint8(img2));
本文链接 : http://write.blog.csdn.net/postedit/13049101
回来写了个程序仿真,实现了这个功能。
原理 ,参照百度百科(1)写的很详细。
对原图实现放大2*3倍,matlab代码仿真如下:
clear
img1=imread(lena.bmp');
img1=rgb2gray(img1);
img1=double(img1);
[row1,wide1]=size(img1);
row2=row1*2;
wide2=wide1*3;
img2=zeros(row2,wide2);
for y2=5:row2-5
for x2=5:wide2-5;
x=x2/3;
y=y2/2;
q11x=floor(x);
q11y=ceil(y);
q21x=ceil(x);
q21y=ceil(y);
q22x=ceil(x);
q22y=floor(y);
q12x=floor(x);
q12y=floor(y);
X2=ceil(x);% important,当出现如整数5 的时候,x2等于5,x1=4,也就是取当前的坐标和前面的一个坐标计算
X1=ceil(x-1);
Y2=ceil(y-1);%important
Y1=ceil(y);
R1=( X2-x) *img1(q11y,q11x)+(x- X1)*img1(q21y,q21x);
R2=(X2-x) *img1(q12y,q12x)+(x- X1)*img1(q22y,q22x);
fp=-( (Y2- y)*R1 + (y-Y1)*R2) ;
img2(y2,x2)=ceil(fp);
end
end
subplot(1,2,1);
imshow(uint8(img1));
subplot(1,2,2);
imshow(uint8(img2));
本文链接 : http://write.blog.csdn.net/postedit/13049101
相关文章推荐
- opencl:C++实现双线性插值图像缩放
- 图像处理之基础---图像缩放中的双线性插值c实现
- thinkPHP框架实现图像裁剪、缩放、加水印的方法
- [转]opencv3 图像处理 之 图像缩放( python与c++实现 )
- 用线性插值算法实现图像缩放
- jquery+.net实现类似开心网图像缩放截取功能(附代码下载)
- 图像缩放--OpenCV cvResize函数--最近邻插值---双线性插值--基本原理
- 数字图像缩放之最近邻插值与双线性插值处理效果对比
- PHP实现对png图像进行缩放的方法(支持透明背景)
- JAVA实现图像缩放(通过 java.awt.geom的仿射变换结合java.awt.image的各种插值方法实现)
- 双线性插值(Bilinear interpolation)的图像拉伸在mobile上面的实现
- Unity3d 双线性插值纹理图片缩放的实现
- 图像平移、缩放、旋转、插值 Matlab实现
- 图像处理之图像基本变化(平移、缩放、旋转)(Octave实现)
- Android 使用变形矩阵实现可以拖拽,缩放,旋转的图像
- 使用SSE4指令集优化双线性插值图像缩放
- opencv实现图像的剪切和缩放
- 实现基于最近邻内插和双线性内插的图像缩放C++实现
- JAVA实现图像缩放(通过 java.awt.geom的仿射变换结合java.awt.image的各种插值方法实现)
- C#控件picturebox实现图像拖拽和缩放