美文网首页Python_图像处理
重映射复制、旋转

重映射复制、旋转

作者: 大龙10 | 来源:发表于2021-10-10 17:14 被阅读0次

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

    第5章 几何变换

    5.5 重映射

    5.5.2 复制

    在映射时,将参数进行如下处理:

    • 将map1的值设定为对应位置上的x轴坐标值。
    • 将map2的值设定为对应位置上的y轴坐标值。

    通过上述处理后,可以让函数cv2.remap()实现图像复制。

    5.5.3 绕x轴翻转

    如果想让图像绕着x轴翻转,意味着在映射过程中:

    • x坐标轴的值保持不变。
    • y坐标轴的值以x轴为对称轴进行交换。

    反映在map1和map2上:

    • map1的值保持不变。
    • map2的值调整为“总行数-1-当前行号”。

    需要注意,OpenCV中行号的下标是从0开始的,所以在对称关系中存在“当前行号+对称行号=总行数-1”的关系。据此,在绕着x轴翻转时,map2中当前行的行号调整为“总行数-1-当前行号”。

    5.5.4 绕y轴翻转

    如果想让图像绕着y轴翻转,意味着在映射过程中:

    • y坐标轴的值保持不变。
    • x坐标轴的值以y轴为对称轴进行交换。

    反映在map1和map2上:

    • map2的值保持不变。
    • map1的值调整为“总列数-1-当前列号”。

    需要注意,OpenCV中列号的下标是从0开始的,所以在对称关系中存在“当前列号+对称列号=总列数-1”的关系。据此,在绕着y轴翻转时,map1中当前列的列号调整为“总列数-1-当前列号”。

    3)程序

    【例5.15】设计程序,使用函数cv2.remap()实现图像复制、绕x轴的翻转、绕y轴的翻转。

    import cv2
    import numpy as np
    img=cv2.imread("lena.bmp")
    rows,cols=img.shape[:2]
    mapx = np.zeros(img.shape[:2],np.float32)
    mapy = np.zeros(img.shape[:2],np.float32)
    for i in range(rows):
        for j in range(cols):
            mapx.itemset((i,j),j)
            mapy.itemset((i,j),i)
    rst1=cv2.remap(img,mapx,mapy,cv2.INTER_LINEAR)
    
    mapx = np.zeros(img.shape[:2],np.float32)
    mapy = np.zeros(img.shape[:2],np.float32)
    for i in range(rows):
        for j in range(cols):
            mapx.itemset((i,j),j)
            mapy.itemset((i,j),rows-1-i)
    rst2=cv2.remap(img,mapx,mapy,cv2.INTER_LINEAR)
    
    mapx = np.zeros(img.shape[:2],np.float32)
    mapy = np.zeros(img.shape[:2],np.float32)
    for i in range(rows):
        for j in range(cols):
                mapx.itemset((i,j),cols-1-j)
                mapy.itemset((i,j),i)
    rst3=cv2.remap(img,mapx,mapy,cv2.INTER_LINEAR)
    
    cv2.imshow("original",img)
    cv2.imshow("result1",rst1)
    cv2.imshow("result2",rst2)
    cv2.imshow("result3",rst3)
    
    cv2.waitKey()
    cv2.destroyAllWindows()
    
    

    4)结果

    相关文章

      网友评论

        本文标题:重映射复制、旋转

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