输入一个n行m列的黑白图像,将它顺时针旋转90度后输出c++
时间: 2024-06-14 22:07:45 浏览: 222
要实现将一个n行m列的黑白图像顺时针旋转90度后输出,可以使用C++编程语言来完成。下面是一个简单的实现示例:
```cpp
#include <iostream>
#include <vector>
using namespace std;
// 定义一个函数来进行图像旋转
vector<vector<int>> rotateImage(vector<vector<int>>& image) {
int n = image.size();
int m = image[0].size();
// 创建一个新的矩阵来存储旋转后的图像
vector<vector<int>> rotatedImage(m, vector<int>(n));
// 进行旋转操作
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
rotatedImage[j][n - 1 - i] = image[i][j];
}
}
return rotatedImage;
}
int main() {
int n, m;
cout << "请输入图像的行数和列数:";
cin >> n >> m;
// 创建一个二维数组来存储图像
vector<vector<int>> image(n, vector<int>(m));
cout << "请输入图像的像素值(0代表黑色,1代表白色):" << endl;
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
cin >> image[i][j];
}
}
// 调用函数进行图像旋转
vector<vector<int>> rotatedImage = rotateImage(image);
// 输出旋转后的图像
cout << "旋转后的图像:" << endl;
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
cout << rotatedImage[i][j] << " ";
}
cout << endl;
}
return 0;
}
```
这段代码首先会要求用户输入图像的行数和列数,然后再依次输入图像的像素值。接下来,调用`rotateImage`函数对图像进行旋转操作,并将旋转后的图像输出到控制台上。
阅读全文