OpenCV利用矩阵实现图像旋转

Posted Dean Feng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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度的效果了。

    效果图

以上是关于OpenCV利用矩阵实现图像旋转的主要内容,如果未能解决你的问题,请参考以下文章

利用OpenCV实现旋转文本图像矫正的原理及OpenCV代码

OpenCV环境下实现图像任意角度旋转的原理及代码

图片处理-opencv-3.图像缩放、旋转、翻转、平移

OpenCV从仿射矩阵得到旋转量平移量缩放量

OpenCV从仿射矩阵得到旋转量平移量缩放量

opencv图像旋转,该怎么解决