写一个图像旋转的c++代码
时间: 2024-03-15 14:28:30 浏览: 13
以下是一个简单的图像旋转的C代码,它将一个二维数组表示的图像顺时针旋转90度:
#include <stdio.h>
void rotateImage(int image[][4], int size) {
int temp[size][size];
// 顺时针旋转90度
for (int i = 0; i < size; i++) {
for (int j = 0; j < size; j++) {
temp[i][j] = image[size - j - 1][i];
}
}
// 将旋转后的图像复制回原数组
for (int i = 0; i < size; i++) {
for (int j = 0; j < size; j++) {
image[i][j] = temp[i][j];
}
}
}
int main() {
// 测试用例
int image[4][4] = {
{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12},
{13, 14, 15, 16}
};
int size = 4;
printf("原图像:\n");
for (int i = 0; i < size; i++) {
for (int j = 0; j < size; j++) {
printf("%d ", image[i][j]);
}
printf("\n");
}
rotateImage(image, size);
printf("旋转后的图像:\n");
for (int i = 0; i < size; i++) {
for (int j = 0; j < size; j++) {
printf("%d ", image[i][j]);
}
printf("\n");
}
return 0;
}
输出结果为:
原图像:
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
旋转后的图像:
13 9 5 1
14 10 6 2
15 11 7 3
16 12 8 4