zoukankan      html  css  js  c++  java
  • Python调用OpenCV几何变换

    这一篇就记录三个:图像缩放、平移和镜像。

    1、图像缩放

    图像缩放用到的函数是cv2.resize()函数,函数原型如下:

    resize(src, dsize, dst = None, fx = None, fy = None, interpolation = None)

    OpenCV提供了几种缩放方式:cv2.INTER_AREA、cv2.INTER_CUBIC、cv2.INTER_LINEAR和cv2.INTER_LINEAR,默认参数是cv2.INTER_LINEAR,这几种方式在使用的时候有两个建议,如果是缩小尺寸,建议用cv2.INTER_AREA,如果是放大建议用cv2.INTER_CUBIC和cv2.INTER_LINEAR,cv2.INTER_CUBIC的话可能会相对较慢。

    2、平移

    平移可以先构造一个平移矩阵,然后传递给cv2.warpAffine()函数做模板进行平移,该平移矩阵可以通过numpy来构造实现:

    src = cv2.imread('lena.bmp')
    rows = src.shape[0]
    cols = src.shape[1]
    
    cv2.imshow('src', src)
    M = np.float32([[1, 0, 100], [0, 1, 50]])
    dst = cv2.warpAffine(src, M, (cols, rows))
    
    cv2.imshow('dst', dst)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

    结果显示如下:

    3、镜像

    水平镜像和垂直镜像的实现都可以使用cv2.flip来实现:

    cv.flip(src,0,dst) #垂直镜像
    cv.flip(src,1,dst) #水平镜像
    cv.flip(src,-1,dst) #主对角镜像

    人生并非只有一处

    缤纷烂漫

    那凋零的是花

    ——不是春天

    上善若水,为而不争。
  • 相关阅读:
    专职DBA-MySQL体系结构与基本管理
    JSON
    MIME类型
    文件上传下载
    response常用的方法
    2020.11.27小记
    HTTP请求状态码
    1561. Maximum Number of Coins You Can Get
    1558. Minimum Numbers of Function Calls to Make Target Array
    1557. Minimum Number of Vertices to Reach All Nodes
  • 原文地址:https://www.cnblogs.com/Bearoom/p/12489403.html
Copyright © 2011-2022 走看看