cv::rotate()
时间: 2024-05-20 09:07:27 浏览: 11
cv::rotate()函数是OpenCV库中用于旋转图像的函数。它可以按照指定的角度对图像进行旋转,并返回旋转后的图像。下面是一个使用cv::rotate()函数旋转图像的示例:
```cpp
cv::Mat srcImage = cv::imread("image.jpg"); // 读取图像
double angle = 45; // 旋转角度
cv::Point2f center(srcImage.cols / 2, srcImage.rows / 2); // 旋转中心点
cv::Mat rotatedImage;
cv::warpAffine(srcImage, rotatedImage, cv::getRotationMatrix2D(center, angle, 1.0), srcImage.size()); // 进行旋转
cv::imshow("Rotated Image", rotatedImage); // 显示旋转后的图像
cv::waitKey(0);
```
这段代码首先读取一张图像,然后定义了旋转的角度和旋转中心点。接下来,使用cv::getRotationMatrix2D()函数生成旋转矩阵,并将其作为参数传递给cv::warpAffine()函数进行图像旋转。最后,使用cv::imshow()函数显示旋转后的图像。
相关问题
cv::Mat src = cv::imread("image.jpg");cv::Mat dst;cv::rotate(src, dst, cv::ROTATE_90_COUNTERCLOCKWISE);用opencvsharp改写
下面是将上述代码用OpenCvSharp改写的示例:
```
using OpenCvSharp;
Mat src = Cv2.ImRead("image.jpg");
Mat dst = new Mat();
Cv2.Rotate(src, dst, RotateFlags.Rotate90CounterClockwise);
```
在这个示例中,我们首先使用Cv2.ImRead函数加载了一张图像,并将其存储在src中。然后,我们创建了一个空的Mat对象dst,用于存储旋转后的图像。最后,我们使用Cv2.Rotate函数将src逆时针旋转90度,并将结果存储在dst中。RotateFlags枚举类型用于指定旋转的方向,可以使用RotateFlags.Rotate90Clockwise进行顺时针旋转90度,或使用RotateFlags.Rotate180进行180度旋转等。
if (!infer_state) { std::cout << "Waiting for inference" <<std::endl; return; } try { color_ptr = cv_bridge::toCvCopy(color_image, image_encodings::BGR8); depth_ptr = cv_bridge::toCvCopy(depth_image, sensor_msgs::image_encodings::TYPE_16UC1); } catch (cv_bridge::Exception& e) { ROS_ERROR("cv_bridge exception: %s", e.what()); return; } color_ptr->image.copyTo(color_img); depth_ptr->image.copyTo(depth_img); if (img_rotate) { cv::rotate(color_img, color_img, cv::ROTATE_180); cv::rotate(depth_img, depth_img, cv::ROTATE_180); } image_update = true;
这段代码用于处理接收到的图像消息,并将其转换为OpenCV图像格式进行后续处理。
首先,检查变量 `infer_state` 的值。如果为假,则输出一条消息并返回,表示正在等待推理状态。
接下来,使用 `cv_bridge::toCvCopy` 方法将接收到的 `color_image` 和 `depth_image` 转换为OpenCV图像格式,并将结果分别保存到 `color_ptr` 和 `depth_ptr` 中。
如果转换过程中发生异常,会捕获 `cv_bridge::Exception` 异常,并使用 `ROS_ERROR` 输出错误信息,然后返回。
接下来,将 `color_ptr->image` 复制到 `color_img` 中,将 `depth_ptr->image` 复制到 `depth_img` 中。
如果变量 `img_rotate` 的值为真,则对 `color_img` 和 `depth_img` 进行180度旋转。
最后,将变量 `image_update` 的值设置为真,表示图像已更新。
这段代码的作用是处理接收到的图像消息,并将其转换为OpenCV图像格式进行后续处理。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.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)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)