%======用matlab对图像进行缩放(双线性插值法)
clear; %此题是用双线性插值法实现图像缩放
I=imread('f.jpg');
%读入原图像,只需将此处的文件换成要变换的图片即可
%图像属性
% Filename: 'f.jpg'
%
FileModDate: '24-Aug-2008 16:50:30'
% FileSize: 20372
%
Format: 'jpg'
% FormatVersion: ''
% Width: 480
%
Height: 640
% BitDepth: 8
% ColorType:
'grayscale'
% FormatSignature: ''
% NumberOfSamples: 1
%
CodingMethod: 'Huffman'
% CodingProcess: 'Sequential'
%
Comment: {}
[rows,cols]=size(I);
K1 = str2double(inputdlg('请输入行缩放倍数', 'INPUT scale factor', 1,
{'0.5'}));%行默认变为原来的0.5倍
K2 = str2double(inputdlg('请输入列缩放倍数', 'INPUT
scale factor', 1, {'0.4'}));%列默认变为原来的0.4倍
width = K1 * rows;
height = K2 * cols;
Out = uint8(zeros(width,height)); %创建输出图像矩阵
widthScale = rows/width;
heightScale = cols/height;
for x = 6:width - 6 % 6是为了防止矩阵超出边界溢出
for y = 6:height - 6
oldX = x * widthScale; % oldX,oldY为原坐标,x,y为新坐标
oldY = y * heightScale;
if (oldX/double(uint16(oldX)) == 1.0) &
(oldY/double(u