前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >图像扭曲变形

图像扭曲变形

作者头像
裴来凡
发布2022-05-29 09:54:10
发布2022-05-29 09:54:10
45300
代码可运行
举报
运行总次数:0
代码可运行
代码语言:javascript
代码运行次数:0
运行
复制
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/

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-11-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 图像处理与模式识别研究所 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档