Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#2 |
初级会员
注册日期: 2009-03-09
年龄: 42
帖子: 13
声望力: 17 ![]() |
![]()
一幅数字图像可以用一个矩阵来表示,对数字图像进行处理,实质上就是对特定的图像矩阵进行变换的过程,因此,图像变换是数字图像处理技术的基础。
图像变换的方法林林总总,多种多样。包括空间域变换、频率域变换、时频域变换、基于经典数学理论的变换、基于现代数学理论的变换。 以下程序段是用于图像放缩(空间变换)的MATLAB源程序: ********************************************************************* function newImage=resample1(image,newRow,newCol) % 功能:对图像进行缩放 % 输入:image-需要进行缩放的灰度图像; % newRow-缩放后新图像的行数; % newCol-缩放后新图像的列数; % 输出:newImage-缩放后的图像。 [row,col]=size(image); image_larger=zeros((row+1),(col+1)); image_larger(1:row,1:col)=image; image=image_larger; newImage=zeros(newRow,newCol); for i=0newRow-1) for j=0newCol-1) x=j*(col-1)/(newCol-1); y=i*(row-1)/(newRow-1); fx=floor(x); fy=floor(y); area_ul=(x-fx)*(y-fy); area_ur=(fx+1-x)*(y-fy); area_bl=(x-fx)*(fy+1-y); area_br=(fx+1-x)*(fy+1-y); newImage(i+1,j+1)=... image(fy+1,fx+1)*area_br+... image(fy+1,fx+2)*area_bl+... image(fy+2,fx+1)*area_ur+... image(fy+2,fx+2)*area_ul; end end ********************************************************************* 在MATLAB中,图像的缩放也可以调用imresize函数来实现。imresize函数的调用格式如下: B = imresize(A,m,method) imrersize函数使用由参数method指定的插值运算来改变图像的大小。method的几种可选值: 'nearest'(默认值)最近邻插值; 'bilinear'双线性插值; 'bicubic'双三次插值; B = imresize(A,m)表示把图像A放大m倍。 |
![]() |
![]() |