• OpenCV利用矩阵实现图像旋转


    利用OpenCV的矩阵操作实现图像的逆时针旋转90度操作


    • 代码
    Mat src = imread("C:\Users\fenggl\Desktop\测试.jpg",MREAD_UNCHANGED);
    imshow("原图", src);
    transpose(src, src);
    flip(src, src, 0);
    imshow("逆时针旋转90度", src);
    • 效果

    • 解释说明

        第一步:读入原图

    Mat src = imread("C:\Users\fenggl\Desktop\测试.jpg",MREAD_UNCHANGED);

        第二步:矩阵转置

    transpose(src, src);

        矩阵转置后的的原有的一行变为现有的一列,原有的一列变为现有的一行。

        效果图:

        第三步:矩阵的翻转(这里其实是对图像的一个镜像)

    flip(src, src, 0);
    void cv::flip ( InputArray  src,  OutputArray  dst,  int  flipCode )     

        这个函数其实是对一个二维的数对进行X轴或者Y轴或者两个轴同时进行翻转(镜像),取决于第三个参数flipcode。

        如果flipcode=0,则在X轴上做镜像,如果flipcode=1,则在Y轴上做镜像,如果flipcode=0则在两个轴同时作镜像。

        上述代码效果

        至此,就实现了逆时针旋转90度了。

        同样的如果转置后采取的是Y轴的镜像,也就是flipcode=1时候,就是顺时针旋转90度的效果了。

        效果图

  • 相关阅读:
    uva 10881
    uva 1388
    【USACO 3.2.5】魔板
    【USACO 3.2.4】饲料调配
    【USACO 3.2.3】纺车的轮子
    【USACO 3.2.2】二进制数01串
    【USACO 3.2.1】阶乘
    【USACO 3.1.6】邮票
    【USACO 3.1.5】联系
    【USACO 3.1.4】形成的区域
  • 原文地址:https://www.cnblogs.com/visionfeng/p/6023587.html
Copyright © 2020-2023  润新知