美文网首页
Python 图片变形(转)

Python 图片变形(转)

作者: 方丈czb | 来源:发表于2019-08-07 17:20 被阅读0次

    原链接:https://jingyan.baidu.com/article/15622f24d5c6bdfdfcbea5e2.html

    图像变形,可以归结为像素的坐标变换。

    那么,本文使用的是anaconda(python3.6)以及matplotlib模块。

    用python实现图像变形

    用python实现图像变形

    工具/原料

    • 电脑

    • anaconda(python3.6)

    • matplotlib模块

    方法/步骤

    1. 代码大体如下。

      用python实现图像变形
    2. 给定如下图像。

      用python实现图像变形
    3. 那么,上面的代码可以把上图变成下图。

      用python实现图像变形
    4. 函数如下:

    def f(i,j):
        return i**2-j**2
    
    def g(i,j):
        return 2*i*j
    

    用python实现图像变形
    def f(i,j):
         return i-j**2
    
    def g(i,j):
        return 2*i*j
    

    用python实现图像变形
    def f(i,j):
        return i**2-j
    
    def g(i,j):
        return 2*i*j
    

    用python实现图像变形
    def f(i,j):
        return i+0.1*np.sin(3*np.pi*j)
    
    def g(i,j):
        return j
    

    用python实现图像变形
    def f(i,j):
        def f(i,j):return i+0.1*np.sin(2*np.pi*j)
    
    def g(i,j):
        return j+0.1*np.sin(3*np.pi*i)
    

    用python实现图像变形
    END
    

    注意事项

    • 最后的代码
    import numpy as np
    p=np.array([[0,0.],[0,1],[1,1],[1,0]])
    q=np.array([[0.3,0.3],[0,1],[1,1],[1,0]])
    import matplotlib.image as py
    img=py.imread('C:/Users/Administrator/Pictures/0.png')
    u,v=img.shape[:2]
    def f(i,j):
        return i+0.1*np.sin(2*np.pi*j)
    def g(i,j):
        return j+0.1*np.sin(3*np.pi*i)
    M=[]
    N=[]
    for i in range(u):
        for j in range(v):
            i0=i/u
            j0=j/v
            u0=int(f(i0,j0)*512)
            v0=int(g(i0,j0)*512)
            M.append(u0)
            N.append(v0)
    m1,m2=max(M),max(N)
    n1,n2=min(M),min(N)
    r=np.zeros((m1-n1,m2-n2,4))
    for i in range(u):
        for j in range(v):
            i0=i/u
            j0=j/v
            u0=int(f(i0,j0)*512)-n1-1
            v0=int(g(i0,j0)*512)-n2-1
            r[u0,v0]=img[i,j]
    py.imsave('C:/Users/Administrator/Pictures/1.png',r)
    

    相关文章

      网友评论

          本文标题:Python 图片变形(转)

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