在图像处理中,几何变换是一种常用的图像操作,它能够改变图像的形状、大小或方向。MATLAB提供了丰富的函数来支持各种几何变换,以下是一些实用的代码示例,用于演示如何对灰度图像进行几何变换。
1. 图像缩放
缩放图像是几何变换中最基本的操作之一。以下是一个示例,展示如何将灰度图像进行放大和缩小。
% 读取灰度图像
I = imread('example.jpg');
I = rgb2gray(I);
% 计算缩放比例
scaleUp = 1.5; % 放大1.5倍
scaleDown = 0.5; % 缩小到原来的50%
% 放大图像
I_upscaled = imresize(I, scaleUp);
% 缩小图像
I_downscaled = imresize(I, scaleDown);
2. 图像旋转
旋转图像是另一种常见的几何变换。以下代码展示了如何将灰度图像旋转90度。
% 读取灰度图像
I = imread('example.jpg');
I = rgb2gray(I);
% 旋转90度
I_rotated = imrotate(I, 90);
% 显示旋转后的图像
imshow(I_rotated);
3. 图像翻转
图像翻转包括水平和垂直翻转。以下代码展示了如何实现这两种翻转。
% 读取灰度图像
I = imread('example.jpg');
I = rgb2gray(I);
% 水平翻转
I_flippedHorizontal = flipud(I);
% 垂直翻转
I_flippedVertical = fliplr(I);
% 显示翻转后的图像
subplot(1, 2, 1);
imshow(I_flippedHorizontal);
subplot(1, 2, 2);
imshow(I_flippedVertical);
4. 图像平移
平移图像是指将图像沿x轴或y轴方向移动。以下代码展示了如何实现平移。
% 读取灰度图像
I = imread('example.jpg');
I = rgb2gray(I);
% 沿x轴平移
x_shift = 50; % 向右平移50个像素
I_shiftedX = imshift(I, [x_shift, 0]);
% 沿y轴平移
y_shift = 30; % 向下平移30个像素
I_shiftedY = imshift(I, [0, y_shift]);
% 显示平移后的图像
subplot(1, 2, 1);
imshow(I_shiftedX);
subplot(1, 2, 2);
imshow(I_shiftedY);
5. 图像裁剪
裁剪图像是指从图像中提取一部分区域。以下代码展示了如何裁剪图像。
% 读取灰度图像
I = imread('example.jpg');
I = rgb2gray(I);
% 裁剪图像
crop_size = [100, 100]; % 裁剪大小
I_cropped = I(100:200, 100:200);
% 显示裁剪后的图像
imshow(I_cropped);
这些代码示例可以帮助你理解如何在MATLAB中对灰度图像进行几何变换。你可以根据需要调整参数,以实现不同的变换效果。
