zoukankan      html  css  js  c++  java
  • Python opencv numpy旋转图片

    python旋转图片

    背景:

    在图像处理中,有的时候会有对图片进行角度旋转的处理,尤其是在计算机视觉中对于图像扩充,旋转角度扩充图片是一种常见的处理。这种旋转图片的应用场景也比较多,比如用户上传图片是竖着的时候,不好进行处理,也需要对其进行旋转,以便后续算法处理。常见的旋转处理有两种方式,一种是转化为numpy矩阵后,对numpy矩阵进行处理,另外一种是使用opencv自带的函数进行各种变换处理,以实现旋转角度的结果。

    原始图像

    代码

    def totateClockWise90ByNumpy(img_file):  # np.rot90(img, 1) 顺时针旋转90度
        img = cv2.imread(img_file,cv2.IMREAD_UNCHANGED)
        # np.rot90(img, 1) 顺时针旋转90度
        # np.rot90(img, 2) 顺时针旋转180度
        # np.rot90(img, 3) 顺时针旋转270度
    
        img90 = np.rot90(img, 3)
        cv2.imwrite("/tmp/123_3.png",img90)
        cv2.imshow("rotate", img90)
        cv2.waitKey(0)
        return img90
    
    
    totateClockWise90ByNumpy('/tmp/lena2.png')

    旋转90度

    旋转180度

    旋转270度

     

    图像反转

      cv2.flip : 对图像矩阵进行翻转处理,参数可以设置为1,0,-1,分别对应着水平翻转、垂直翻转、水平垂直翻转。

    img = cv2.imread(origin_img_path)
    img_flip = cv2.flip(img, 1)
    cv2.imshow('flip', img_flip)
    cv2.waitKey(0)

    原图

    水平翻转

    垂直翻转

     水平垂直翻转

  • 相关阅读:
    Flash 全局安全性设置面板
    响应式布局的一个例子mark
    移动平台WEB前端开发技巧汇总
    自定义事件机制——观察者模式
    学习之响应式Web设计:Media Queries和Viewports
    常用栅格布局方案
    观察者模式的一个例子
    二进制文件转换为文本工具
    C#面向对象名词比较(二)
    MSN消息提示类
  • 原文地址:https://www.cnblogs.com/zhaoyingjie/p/14703742.html
Copyright © 2011-2022 走看看