美文网首页
平移变换

平移变换

作者: 大龙10 | 来源:发表于2021-10-05 16:11 被阅读0次

    《OpenCV轻松入门:面向Python》读书笔记
    作者:李立宗
    出版社:电子工业出版社
    出版时间:2019-05

    第5章 几何变换

    5.3 仿射

    5.3.1 平移

      通过转换矩阵M实现将原始图像src转换为目标图像dst:

    dst(x, y)=src(M_{11}x+M_{12}y+M_{13}, M_{21}x+M_{22}y+M_{23})

      将原始图像src向右侧移动100个像素、向下方移动200个像素,则其对应关系为:

    dst (x, y)=src (x+ 100, y+ 200)

      将上述表达式补充完整,即:

    dst (x, y)=src (1·x+ 0·y+ 100, 0·x+ 1·y+ 200)

      根据上述表达式,可以确定对应的转换矩阵M中各个元素的值为:
    M11=1, M12=0, M13=100, M21=0,M22=1, M23=200
      将上述值代入转换矩阵M,得到:
    M=\begin{equation} \left[ \begin{array} {ccc} 1 & 0 & 100 \\ 0 & 1 & 200 \end{array} \right] \end{equation}

      在已知转换矩阵M的情况下,可以直接利用转换矩阵M调用函数cv2.warpAffine()完成图像的平移。

    2) 程序

    import cv2
    import numpy as np
    img=cv2.imread("lena.bmp")
    height,width=img.shape[:2]
    x=100
    y=200
    M = np.float32([[1, 0, x], [0, 1, y]])
    move=cv2.warpAffine(img,M,(width,height))
    cv2.imshow("original",img)
    cv2.imshow("move",move)
    cv2.waitKey()
    cv2.destroyAllWindows()
    

    3) 运行结果

    相关文章

      网友评论

          本文标题:平移变换

          本文链接:https://www.haomeiwen.com/subject/ikuhnltx.html