opencv 图像旋转 c++
时间: 2023-10-15 12:06:47 浏览: 78
要在 OpenCV 中旋转图像,可以使用函数 `cv::rotate()`。该函数的原型如下:
```cpp
void cv::rotate(cv::InputArray src, cv::OutputArray dst, int rotateCode);
```
其中,`src` 是输入图像,`dst` 是输出图像,`rotateCode` 是旋转代码,表示旋转的方向和角度。具体来说,`rotateCode` 可以取以下值:
- `cv::ROTATE_90_CLOCKWISE`:顺时针旋转 90 度。
- `cv::ROTATE_180`:旋转 180 度。
- `cv::ROTATE_90_COUNTERCLOCKWISE`:逆时针旋转 90 度。
示例代码如下:
```cpp
cv::Mat src = cv::imread("input.jpg");
cv::Mat dst;
cv::rotate(src, dst, cv::ROTATE_90_CLOCKWISE);
cv::imwrite("output.jpg", dst);
```
这段代码将读入一张名为 `input.jpg` 的图像,将其顺时针旋转 90 度,并将结果保存为名为 `output.jpg` 的图像。
相关问题
c++ opencv 图像旋转
在C++中使用OpenCV进行图像旋转非常简单。下面是一个简单的示例代码,展示了如何使用OpenCV对图像进行旋转:
```cpp
#include <opencv2/opencv.hpp>
int main() {
// 读取图像
cv::Mat image = cv::imread("image.jpg");
// 定义旋转角度和缩放比例
double angle = 45.0;
double scale = 1.0;
// 计算旋转中心
cv::Point2f center(image.cols / 2, image.rows / 2);
// 获取旋转矩阵
cv::Mat rotationMatrix = cv::getRotationMatrix2D(center, angle, scale);
// 应用旋转变换
cv::Mat rotatedImage;
cv::warpAffine(image, rotatedImage, rotationMatrix, image.size());
// 显示原始图像和旋转后的图像
cv::imshow("Original Image", image);
cv::imshow("Rotated Image", rotatedImage);
cv::waitKey(0);
return 0;
}
```
在上面的代码中,我们首先使用`cv::imread`函数读取图像。然后,我们定义了旋转角度和缩放比例。接下来,我们计算了旋转中心,并使用`cv::getRotationMatrix2D`函数获取旋转矩阵。最后,我们使用`cv::warpAffine`函数应用旋转变换,并将结果保存在`rotatedImage`中。最后,我们使用`cv::imshow`函数显示原始图像和旋转后的图像,并使用`cv::waitKey`等待用户按下任意键关闭窗口。
希望这个示例能够帮助到你!如果你有任何进一步的问题,请随时提问。
opencv图像旋转处理C++小程序
当然,下面是一个用C++编写的OpenCV图像旋转处理的小程序示例:
```cpp
#include <opencv2/opencv.hpp>
int main() {
// 读取图像
cv::Mat image = cv::imread("input.jpg");
// 检查图像是否成功读取
if (image.empty()) {
std::cout << "无法读取图像文件" << std::endl;
return -1;
}
// 原始图像的宽度和高度
int width = image.cols;
int height = image.rows;
// 设置旋转中心和角度
cv::Point2f center(width / 2, height / 2);
double angle = 45;
// 获取旋转矩阵(2x3矩阵)
cv::Mat rotationMatrix = cv::getRotationMatrix2D(center, angle, 1.0);
// 执行旋转操作
cv::Mat rotatedImage;
cv::warpAffine(image, rotatedImage, rotationMatrix, image.size());
// 显示原始图像和旋转后的图像
cv::imshow("Original Image", image);
cv::imshow("Rotated Image", rotatedImage);
cv::waitKey(0);
return 0;
}
```
请确保将代码中的"input.jpg"替换为您自己的图像文件路径。上述代码使用`cv::getRotationMatrix2D`函数获取旋转矩阵,然后使用`cv::warpAffine`函数执行实际的图像旋转操作。最后,使用`cv::imshow`函数显示原始图像和旋转后的图像。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)