opencv图片旋转90°/-90°/180°,转一条博客

 

偶然间看到大佬博客:https://blog.csdn.net/fengbingchun/article/details/52554711

用到2个函数:

 transpose(Mat src,Mat &dst);     //转置

flip(Mat src,Mat &dst,int nFlag) ;     //镜像

 

测试代码:

    Mat src = imread("E:/TestImg/t1.jpg");
    Mat temp,dst0,dst1,dst_1;
    transpose(src, temp);
    flip(temp,dst1,1);
    flip(temp,dst0,0);
    flip(temp, dst_1, -1);
    imshow("src",src);
    imshow("transpose",temp);
    imshow("flip:1",dst1);
    imshow("flip:0", dst0);
    imshow("flip:-1", dst_1);
    waitKey();
运行截图:

观测结果可以发现:

 transpose()之后,图片做了90°转置,并且左右镜像了

再flip(),第3个参数为0时,图像摆正,相当于逆时针旋转了90°

 

2.当图像需要旋转90°时,flip()第3个参数为1:

    Mat src = imread("E:/TestImg/t1.jpg");
    Mat temp,dst;
    transpose(src, temp);
    flip(temp,dst,1);
    imshow("src",src);
    imshow("transpose",temp);
    imshow("flip:1",dst);
    waitKey();
结果:

3.当图像需要180°旋转时:

    Mat src = imread("E:/TestImg/t1.jpg");
    Mat temp,dst;
    flip(src,dst,-1);
    imshow("src",src);
    imshow("flip: -1",dst);
结果:

当然,180°旋转用remap()也可以实现,稍微麻烦了一点

 

总结一下:

需顺时针90°旋转时,transpose(src,tmp) + flip(tmp,dst,1)

需逆时针90°旋转时,transpose(src,tmp) + flip(tmp,dst,0)

需180°旋转时,直接flip(src,dst,-1)
--------------------- 
作者:andylan_zy 
来源:CSDN 
原文:https://blog.csdn.net/andylanzhiyong/article/details/84857915 
版权声明:本文为博主原创文章,转载请附上博文链接!

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值