zoukankan      html  css  js  c++  java
  • 图像旋转 OpenCV实现

    经常对一幅图像进行旋转操作,OpenCV中提供了很方便易用的仿射变换函数warpAffine, 通过getRotationMatrix2D可以得到放射变换矩阵(矩阵大小2x3)

    #include <iostream>
    #include <opencv.hpp>
    
    using namespace std;
    
    
    
    int main(void){
        cv::Mat src = cv::imread("test.png");
        cv::imshow("src", src);
        double angle = -45;
        cv::Point2f center(src.cols / 2, src.rows / 2);
        cv::Mat rot = cv::getRotationMatrix2D(center, angle, 1);
        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());
        cv::imshow("dst", dst);
        cv::waitKey(0);
    
    }

    效果

    原图

    旋转后的图片

  • 相关阅读:
    配置管理puppet
    ruby安装
    angularjs 安装篇
    idea 快捷键
    rabbitmq java queue
    spring cloud bus rabbitmq
    rabbitmq 安装篇
    spring cloud eureka
    spring cloud config
    postgre 导入sql文件
  • 原文地址:https://www.cnblogs.com/willwu/p/6133696.html
Copyright © 2011-2022 走看看