zoukankan      html  css  js  c++  java
  • opencvwarpAffine仿射变换

    仿射变换对应着五种变换:平移,缩放,旋转,翻转,错切

    #include<opencv2/opencv.hpp>
    #include<iostream>
    #include  <vector>
    
    
    int main(int argc, char** argv) {
    
        cv::Mat I = cv::imread("D:/bb/tu/ma.png");
        cv::Mat dst;
    
        //设置原图3个变换顶点
        cv::Point2f AffinePoints0[3] = { cv::Point2f(10, 10), cv::Point2f(10, 300), cv::Point2f(300, 10) };
        //仿射变换是根据三个点来变换的
    
        //设置目标图像3个变换顶点
        cv::Point2f AffinePoints1[3] = { cv::Point2f(50, 50), cv::Point2f(50, 350), cv::Point2f(250, 10) };
        
        cv::Mat Trans = getAffineTransform(AffinePoints0, AffinePoints1);//计算变换矩阵
        //参数1:原图像的3个点
        //参数2:目标图像的3个点
    
        warpAffine(I, dst, Trans, cv::Size(I.cols, I.rows));//矩阵仿射变换
        //参数1:变换前图像
        //参数2:变换后图像
        //参数3:变换矩阵,用另一个函数getAffineTransform()计算
        //参数4:输出图像大小
        //参数5:参数int flags=INTER_LINEAR:设置插值方式,默认方式为线性插值,看下图
    
        imshow("src", I);
        imshow("dst", dst);
    
        cv::waitKey(0);
        return 0;
    }

    资料:https://blog.csdn.net/zhu_hongji/article/details/81660893 

    getRotationMatrix2D旋转

    #include<opencv2/opencv.hpp>
    #include<iostream>
    
    
    int main(int argc, char** argv) {
    
        cv::Mat src = cv::imread("D:/bb/tu/1.jpg");
        cv::imshow("src", src);
        int rows = src.rows;
        int cols = src.cols;
        cv::Point2f center = cv::Point2f(rows / 2, cols / 2);
        
        cv::Mat Trans,dst;
        double angle = 90.0;
        double scale = 0.8;
        Trans =getRotationMatrix2D(center, angle, scale);//计算变换矩阵--旋转
        //参数1:旋转的中心点
        //参数2:旋转角度,正号为逆时针,负号为顺时针
        //参数3:旋转后图像相比原来的缩放比例,1为等比例缩放
    
        warpAffine(src, dst, Trans, cv::Size(src.cols, src.rows));//矩阵仿射变换
        cv::imshow("dst", dst);
        cv::waitKey(0);
        return 0;
    }

  • 相关阅读:
    socket用法以及tomcat静态动态页面的加载
    SQL2000的三种“故障还原模型”
    杀毒软件拦截的,看不懂,留作纪念
    TOMCAT如何建立两个端口或服务
    非正常关机后造成数据库 置疑 状态的解决办法
    各数据表的空间使用量
    SQL Server 2008维护计划 出错 无法实现自动备份
    SQL2008安装自动退出
    oracle自动备份
    吐槽一下金山卫士
  • 原文地址:https://www.cnblogs.com/liming19680104/p/15622610.html
Copyright © 2011-2022 走看看