图像扭曲

2022-05-29 09:28:32 浏览数 (1)

代码语言:javascript复制
from PCV.geometry import warp,homography
from PIL import Image
from pylab import *
from scipy import ndimage
import imageio
def image_in_image(im1,im2,tp):
    m,n=im1.shape[:2]#扭曲点
    fp=array([[0,m,m,0],[0,0,n,n],[1,1,1,1]])#角点坐标
    #计算仿射变换并将其应用于图像
    H=homography.Haffine_from_points(tp,fp)#单应性矩阵(3*3)
    im1_t=ndimage.affine_transform(im1,H[:2,:2],(H[0,2],H[1,2]),im2.shape[:2])
    # 提取由获取矩阵H前2行,将im1仿射成im2所需要图像大小
    alpha=(im1_t>0)#二值的alpha图像
    return (1-alpha)*im2 alpha*im1_t
im1=array(Image.open('C:/Users/xpp/Desktop/Lena.png').convert('L'))#读取图像
im2=array(Image.open('C:/Users/xpp/Desktop/result01.png').convert('L'))#读取图像
tp=array([[30,30,30,30],[30,30,30,30],[1,1,1,1]]) 
im3=image_in_image(im1,im2,tp)#像素值替换
imageio.imwrite('C:/Users/xpp/Desktop/result.png',im3)

算法:图像扭曲是属于仿射变换,在各个方向上伸展变换。图像扭曲用于校正图像有损,用于生成更多样本,同时以及用于某种创意目的(例如,变形),同样的技术也适用于视频。纯粹的图像扭曲意味着点对点的映射,而不改变其颜色。

文献:Leicester, J. . Interpol says suspected pedophile caught in New Jersey.

0 人点赞