预览加载中,请您耐心等待几秒...
1/7
2/7
3/7
4/7
5/7
6/7
7/7

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

%======用matlab对图像进行缩放(双线性插值法)clear;%此题是用双线性插值法实现图像缩放I=imread('f.jpg');%读入原图像,只需将此处的文件换成要变换的图片即可%图像属性%Filename:'f.jpg'%FileModDate:'24-Aug-200816: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('请输入行缩放倍数','INPUTscalefactor',1,{'0.5'}));%行默认变为原来的0.5倍K2=str2double(inputdlg('请输入列缩放倍数','INPUTscalefactor',1,{'0.4'}));%列默认变为原来的0.4倍width=K1*rows;height=K2*cols;Out=uint8(zeros(width,height));%创建输出图像矩阵widthScale=rows/width;heightScale=cols/height;forx=6:width-6%6是为了防止矩阵超出边界溢出fory=6:height-6oldX=x*widthScale;%oldX,oldY为原坐标,x,y为新坐标oldY=y*heightScale;if(oldX/double(uint16(oldX))==1.0)&(oldY/double(uint16(oldY))==1.0)Out(x,y)=I(int16(oldX),int16(oldY));%若oldX,oldY为整数,直接赋值elsea=double(uint16(oldX));b=double(uint16(oldY));x11=double(I(a,b));%x11赋值为I(a,b)x12=double(I(a,b+1));%x12赋值为I(a,b+1)x21=double(I(a+1,b));%x21赋值为I(a+1,b)x22=double(I(a+1,b+1));%x22赋值为I(a+1,b+1)Out(x,y)=uint8((b+1-oldY)*((oldX-a)*x21+(a+1-oldX)*x11)+(oldY-b)*((oldX-a)*x22+(a+1-oldX)*x12));%用双线性插值计算公式计算endendendimshow(I);figure;imshow(Out);%===============使用matlab对图片进行缩放(最近邻域法)clear;%此题是用最近邻域法实现图像缩放I=imread('f.jpg');%读入图像%图像属性%Filename:'f.jpg'%FileModDate:'24-Aug-200816: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('请输入行缩放倍数','INPUTscalefactor',1,{'0.6'}));%行默认变为原来的0.6倍K2=str2double(inputdlg('请输入列缩放倍数','INPUTscalefactor',1,{'0.4'}));%列默认变为原来的0.4倍width=K1*rows;height=K2*cols;im2=uint8(zeros(width,height));%定义输出图像矩阵widthScale=rows/width;heightScale=cols/height;forx=6:width-6%为防止矩阵溢出而选择的参数6fory=6:height-6oldX=x*widthScale;%oldX,oldY为原坐标,x,y为新坐标oldY=y*heightScale;if(oldX/double(uint16(oldX))==1.0)&(oldY/double(uint16(oldY))==1.