opencv旋转任意角度
时间: 2023-11-17 13:00:19 浏览: 63
可以使用cv::getRotationMatrix2D和cv::warpAffine函数来实现opencv旋转任意角度的操作。具体实现可以参考以下代码:
```cpp
cv::Mat src = cv::imread("image.jpg");
cv::Mat dst;
double angle = 45; // 旋转角度
cv::Point2f center(src.cols / 2, src.rows / 2); // 旋转中心
cv::Mat rot = cv::getRotationMatrix2D(center, angle, 1); // 获取旋转矩阵
cv::warpAffine(src, dst, rot, src.size()); // 进行旋转
```
其中,src为原始图像,dst为旋转后的图像,angle为旋转角度,center为旋转中心,rot为旋转矩阵,cv::warpAffine函数用于进行仿射变换。
相关问题
python opencv旋转任意度数代码
以下是 Python OpenCV 旋转任意度数的代码:
```python
import cv2
import numpy as np
def rotate_image(image, angle):
height, width = image.shape[:2]
rotation_matrix = cv2.getRotationMatrix2D((width/2, height/2), angle, 1)
rotated_image = cv2.warpAffine(image, rotation_matrix, (width, height))
return rotated_image
```
其中,`image` 是要旋转的图像,`angle` 是旋转的角度。函数返回旋转后的图像。
例如,要将图像 `img` 逆时针旋转 30 度,可以这样调用函数:
```python
rotated_img = rotate_image(img, 30)
```
希望这个代码对你有帮助!
C语言旋转任意角度图片代码
由于C语言没有直接支持图像处理的库,因此要旋转图片需要借助第三方库,如OpenCV。以下代码基于OpenCV库,实现了任意角度旋转图片。
```c
#include <opencv2/opencv.hpp>
using namespace cv;
Mat rotateImage(Mat& src, float angle)
{
//计算旋转矩阵
cv::Point2f center(src.cols / 2.0, src.rows / 2.0);
cv::Mat rot = cv::getRotationMatrix2D(center, angle, 1.0);
//计算新图片的大小
cv::Rect bbox = cv::RotatedRect(center, src.size(), angle).boundingRect();
//将旋转矩阵应用于原图像
rot.at<double>(0, 2) += bbox.width / 2.0 - center.x;
rot.at<double>(1, 2) += bbox.height / 2.0 - center.y;
cv::Mat dst;
cv::warpAffine(src, dst, rot, bbox.size());
return dst;
}
int main()
{
Mat src = imread("test.jpg"); // 读入原始图像
Mat dst = rotateImage(src, 45); //旋转45度
imwrite("test-rotated.jpg", dst); //保存旋转后的图片
return 0;
}
```
以上代码中,`imread`函数用于读取原始图片,`rotateImage`函数用于将原始图片旋转指定角度,`imwrite`函数用于保存旋转后的图片。其中,`getRotationMatrix2D`函数用于求解旋转矩阵,`RotatedRect`函数用于计算旋转后的图片大小,`warpAffine`函数用于将旋转矩阵应用于原图像。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_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)