首页 > 编程笔记 > MATLAB笔记 阅读:85

MATLAB imresize():调整图像大小(附带实例)

在 MATLAB 中,imresize() 函数用来调整图像大小,它的调用格式及说明如下表所示:

表 1 imresize() 函数调用格式及说明
调用格式 说明
B = imresize(A,scale) 将图像 A 的长宽大小缩放 scale 倍之后,返回图像 B。如果 scale 在 [0, 1] 范围,则 B 比 A 小。如果 scale 大于 1,则 B 比 A 大
B = imresize(A,[numrows numcols]) 返回图像 B,其行数和列数由二元素向量(numrows, numcols)指定
[Y, newmap] = imresize(X, map, …) 调整索引图像 X 的大小,其中 map 是与该图像关联的颜色图。返回经过优化的新颜色图 (newmap) 和已调整大小后的图像
… = imresize(…,method) 指定使用的插值方法 method。默认情况下,使用双三次插值
… = imresize(…,Name, Value) 返回调整大小后的图像,其中名称-值对组参数控制大小调整操作的各个方面,参数表如表 2 所示

表 2 imresize() 函数名称-值对组参数表
属性名 说明 参数值
Antialiasing 缩小图像时消除锯齿 true、false
Colormap 返回优化的颜色图 optimized(默认)、original
Dither 执行颜色抖动 true(默认)、false
Method 插值方法 bicubic(默认)、字符向量、元胞数组
OutputSize 输出图像的大小 二元素数值向量
Scale 大小调整缩放因子 正数值标量,由正值组成的二元素向量

【实例 1】缩放图像。在 MATLAB 命令行窗口中输入如下命令:
>> close all                          % 关闭当前已打开的文件
>> clear                              % 清除工作区的变量
>> I = imread('picture.jpg');         % 将当前路径下的图像读取到工作区中
>> J = imresize(I,0.1,'nearest');     % 采用最近邻插值(nearest)将图像的长宽缩小为原图的0.1
>> K = imresize(I,0.3, 'bilinear');   % 采用双线性插值将图像的长宽缩小为原图的0.3
>> M = imresize(I,0.5,'bicubic');     % 采用默认的双三次插值将图像的长宽缩小为原图的0.5
>> figure,imshow(I);title('原图');    % 显示图像
>> figure,imshow(J);title('最近邻插值')
>> figure,imshow(K);title('双线性插值')
>> figure,imshow(M);title('双三次插值')
运行结果如下图所示:


图 1 显示图像

【实例 2】水平合成图片。第 1 张图片 flower.jpg 的尺寸为 180*240*3,第 2 张图片 fish.jpg 的尺寸为 240×300×3,生成图片 c=[a;b]。

在 MATLAB 命令窗口中输入如下命令:
>> close all                     % 关闭当前已打开的文件
>> clear                         % 清除工作区的变量
>> I = imread('flower.jpg');     % 将分辨率为240×180的图像1加载到工作区
>> J = imread('fish.jpg');       % 将分辨率为300×240的图像2加载到工作区
>> J = imresize(J,[180 NaN]);    % 调整图像大小,将其中一幅图缩小或放大,让两幅图大小相等或者行数相等
>> K = [I J];                    % 水平合成图片
>> imshow(K)                     % 显示图片
运行结果如下图所示:


图 2 显示图像

相关文章