Matlab 程序在不使用函数的情况下顺时针旋转图像 180 度

2025 年 7 月 25 日 | 阅读 4 分钟

二维函数 f(x, y) 可以用来描述图像。f 在任意给定坐标对 (x, y) 的值是图像在该特定位置的强度或灰度。当 x、y 以及 f 的强度值都是离散的、有限的数量时,我们将图像称为数字图像。

  • 数字图像具有有限数量的元素,每个元素都有唯一的位置和值。
  • 这些离散组件的常用名称包括图片元素、图像元素和普通像素。
  • 图像的最小组成部分是像素,每个像素都有一个唯一的数值。

不使用函数

图像代表视觉数据,可以被视为一个数学函数,表示为 f(x, y)。在这个插图中,'x' 和 'y' 代表二维平面上的空间坐标。该函数在每个给定坐标对 (x, y) 处的强度或灰度值代表图像在该特定位置的强度或灰度。它控制着图像中特定点的亮度或暗度。

  • 当空间坐标“x”和“y”以及图像函数“f”的强度值都是离散和有限的时候,我们将图像归类为数字图像。
  • 换句话说,数字图像是指每个组件的强度和位置都已知的图像。

实施

输出

Matlab Program to Rotate an Image 180 Degrees Clockwise Without Using Function

说明

读取图形:使用 imread 函数,代码首先读取输入图像 'orangefl.jpg'。图像将被顺时针旋转 180 度。

获取尺寸:使用 size 函数,代码提取输入图像的尺寸。它返回输入图像的行数、列数以及颜色通道数(对于 RGB 图像通常是三个)。

  • 变量 rows、cols 和 用于保存尺寸;波浪号字符用于丢弃颜色通道数据,因为它在此函数中不需要。

生成空矩阵:zeros 函数生成一个名为 rotated image 的空矩阵。旋转后的图像将保存在这个矩阵中。其尺寸与输入图像匹配。

旋转图像:代码使用嵌套的 for 循环遍历输入图像中的每个像素。为了执行 180 度顺时针旋转,它在循环之间将坐标 (i, j) 交换为 (rows - i + 1, cols - j + 1),并将原始图像中的像素值分配给旋转后图像中的相应位置。

保存旋转后的图像:如果需要,您可以使用 write 函数将旋转后的图像保存到名为 "rotated" 的文件中。

方法

读取图形:imread 函数读取文件名“apple1.png”的图像,并将数据保存在变量 a 中。该行从指定文件中加载图像。

显示原始图像:使用 imshow 函数,它显示保存在变量 a 中的原始图像。此外,它将显示窗口的标题更改为“Original Image”。

将图像旋转 180 度顺时针:代码生成一个新图像 I,通过翻转存储在原始图像中的行和列来将图像顺时针旋转 180 度。通过使用索引表示法,图像被有效地水平和垂直翻转。

显示旋转后的图像:使用 imshow 函数,在新的图形窗口中显示旋转后的图像 i。它显示了顺时针旋转 180 度的图像。尽管代码中没有设置,但如果需要,可以添加显示窗口的标题。

实施

输出

Matlab Program to Rotate an Image 180 Degrees Clockwise Without Using Function

将图像上下翻转,然后左右翻转,使其顺时针旋转 180 度并显示结果。