当前位置:实例文章 » 其他实例» [文章]【OpenCV ? c++】图像几何变换 | 图像旋转

【OpenCV ? c++】图像几何变换 | 图像旋转

发布人:shili8 发布时间:2024-12-31 07:47 阅读次数:0

**图像几何变换 | OpenCV C++**

在计算机视觉领域,图像几何变换是指对图像进行位置、尺寸或方向的变化。这些变换可以用来实现各种功能,如图像拼接、图像识别等。在本文中,我们将重点介绍OpenCV C++中的图像旋转。

**图像旋转**

图像旋转是一种常见的几何变换,涉及将图像旋转一定角度。OpenCV提供了多种函数来实现图像旋转,包括:

* `cv::getRotationMatrix2D`:计算旋转矩阵* `cv::warpAffine`:使用旋转矩阵进行图像变换###1. 计算旋转矩阵首先,我们需要计算旋转矩阵。OpenCV提供了一个函数`cv::getRotationMatrix2D`来实现这一点。

cpp#include 

int main() {
 // 原始图像 cv::Mat src = cv::imread("image.jpg");

 // 旋转角度(单位:度)
 double angle =45.0;

 // 旋转中心点坐标 cv::Point2f center(src.cols /2, src.rows /2);

 // 计算旋转矩阵 cv::Mat rotation_matrix = cv::getRotationMatrix2D(center, angle,1.0);

 return0;
}


在上面的代码中,我们使用`cv::imread`函数读取原始图像,然后计算旋转矩阵。`cv::getRotationMatrix2D`函数需要三个参数:旋转中心点坐标、旋转角度和缩放因子(本例中为1.0)。

###2. 使用旋转矩阵进行图像变换接下来,我们使用旋转矩阵来进行图像变换。OpenCV提供了一个函数`cv::warpAffine`来实现这一点。

cpp#include 

int main() {
 // 原始图像 cv::Mat src = cv::imread("image.jpg");

 // 旋转角度(单位:度)
 double angle =45.0;

 // 旋转中心点坐标 cv::Point2f center(src.cols /2, src.rows /2);

 // 计算旋转矩阵 cv::Mat rotation_matrix = cv::getRotationMatrix2D(center, angle,1.0);

 // 使用旋转矩阵进行图像变换 cv::Mat dst;
 cv::warpAffine(src, dst, rotation_matrix);

 return0;
}


在上面的代码中,我们使用`cv::warpAffine`函数来对原始图像进行变换。这个函数需要三个参数:原始图像、旋转矩阵和输出图像。

###3. 使用 OpenCV 中的 `cv::rotate` 函数OpenCV 还提供了一个函数 `cv::rotate` 来直接实现图像旋转。

cpp#include 

int main() {
 // 原始图像 cv::Mat src = cv::imread("image.jpg");

 // 旋转角度(单位:度)
 double angle =45.0;

 // 使用 OpenCV 中的 cv::rotate 函数进行图像旋转 cv::Mat dst;
 cv::rotate(src, dst, cv::ROTATE_90_COUNTERCLOCKWISE);

 return0;
}


在上面的代码中,我们使用 `cv::rotate` 函数来对原始图像进行变换。这个函数需要三个参数:原始图像、旋转方式和输出图像。

### 总结本文介绍了 OpenCV C++ 中的图像几何变换,特别是图像旋转。我们通过计算旋转矩阵和使用 `cv::warpAffine` 函数来实现图像旋转,并且还介绍了使用 OpenCV 中的 `cv::rotate` 函数直接实现图像旋转。

其他信息

其他资源

Top