21xrx.com
2025-06-17 22:03:20 Tuesday
登录
文章检索 我的文章 写文章
C++ OpenCV 实现图像旋转90度
2023-07-04 20:47:20 深夜i     226     0
C++ OpenCV 图像旋转 90度 实现

图像旋转是计算机视觉中常见的操作之一,它可以让图像在不改变其大小的情况下旋转一定角度。在C++ OpenCV中,实现图像旋转可以使用cv::transpose、cv::flip、cv::rotate等函数,本文将通过代码实现图像旋转90度。

首先,需要包含OpenCV头文件和命名空间:

#include <opencv2/opencv.hpp>
using namespace cv;

旋转函数的基本参数如下:

void cv::rotate(
  InputArray src, // 输入图像
  OutputArray dst, // 输出图像
  int rotateCode // 旋转方向
);

其中,rotateCode表示旋转方向,可以选择以下四种:

- ROTATE_90_CLOCKWISE:顺时针旋转90度

- ROTATE_180:顺时针旋转180度

- ROTATE_90_COUNTERCLOCKWISE:逆时针旋转90度

- ROTATE_180:逆时针旋转180度

接下来,我们来看如何进行图像旋转90度,代码如下:

int main()
{
  Mat src = imread("image.jpg");
  if(src.empty())
    std::cout << "Could not open or find the image!" << std::endl;
    return -1;
  
  Mat dst;
  rotate(src, dst, ROTATE_90_CLOCKWISE);
  imshow("Original Image", src);
  imshow("Rotated Image", dst);
  waitKey(0);
  return 0;
}

上述代码实现了图像的读取、旋转和显示。需要注意的是,输入图像需要是正方形或者长宽比相同的矩形,否则旋转后的图像会有部分被裁剪。

通过以上代码,我们可以看到图像旋转的实现过程。在实际的计算机视觉应用中,图像旋转常用于图像匹配、图像拼接、目标跟踪等领域,是非常重要的技术之一。

  
  

评论区