先把标准的大米图用bwlabel处理啦,S即为处理后的图,然后是下面的函数
% name : 区域插值法放大图像
clear all;
close all;
S=imread('Smi.jpg');
%S=rgb2gray(S);
imshow(S); % 显示原图像
%H=str2double(inputdlg('请输入水平放大倍数:','横向',1, {'4.0'}));
%V=str2double(inputdlg('请输入垂直放大倍数:','纵向',1, {'4.0'}));
H=4.0;
V=4.0;
[M,N]=size(S);
% 放大后图像的大小
NewM =floor( H * M)+1;
NewN =floor( V * N)+1;
F=zeros(NewM,NewN);
%原始图像的位置
for i=1:NewM
for j=1:NewN
xl=i/H;yl=j/V; %原始图像的位置(xl,yl)
x=floor(xl);y=floor(yl); %取整得坐标点
dx=xl-x;dy=yl-y; %位置偏差
if 0
A=S(1,1);B=S(1,2);C=S(2,1);D=S(2,2);
else
A=S(x,y);B=S(x,y+1);C=S(x+