import cv2
import numpy as np
import matplotlib.image as py
p=np.array([[0,0.],[0,1],[1,1],[1,0]])
q=np.array([[0.3,0.3],[0,1],[1,1],[1,0]])
file="C:/Users/xpp/Desktop/Lena.png"
img=cv2.imread(file,0)
cv2.imshow("gray image",img)
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)
'''
def f(i,j):
return i**2-j**2
def g(i,j):
return 2*i*j
'''
'''
def f(i,j):
return i-j**2
def g(i,j):
return 2*i*j
'''
'''
def f(i,j):
return i**2-j
def g(i,j):
return 2*i*j
'''
'''
def f(i,j):
return i+0.1*np.sin(3*np.pi*j)
def g(i,j):
return j
'''
'''
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)
'''
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]
cv2.imshow("r",r)
cv2.waitKey(0)
cv2.destroyAllWindows()
算法:图像扭曲变形是图像像素的坐标变换。
链接:https://matplotlib.org/
本文分享自 图像处理与模式识别研究所 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!