计算机视觉学习(三):仿射变换将一幅图像放置到另一幅图像中

本文介绍如何使用仿射变换将图像精确放置到另一幅图像中,涉及的关键函数包括warp、homography及其内部方法。通过image_in_image()和alpha_for_triangle()处理图像融合,并利用Haffine_from_points()找到最佳对应点的仿射变换。仿射变换在透视变换的基础上,用于改变图像的视角效果,常应用于车道线检测等场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本例子为通过仿射扭曲变换将图像放置到另一幅图像中,使得它们能够和指定的区域或者标记物对齐。

  运行的代码如下:

 # test.py
from PCV.geometry import warp, homography
from PIL import  Image
from pylab import *
from scipy import ndimage

#放射扭曲im1到im2
#打开两张图片
im1 = array(Image.open('D:\pythonxy\image/wen.jpg').convert('L'))
im2 = array(Image.open('D:\pythonxy\image/yu.jpg').convert('L'))

#设置映射的目标点  
tp = array([[240,375,375,240],[143,145,275,275],[1,1,1,1]])

#使用仿射变换将im1放置在im2上,使im1图像的角和tp尽可能的靠近
im3 = warp.image_in_image(im1,im2,tp)

#将图像灰度显示
figure()
gray()
subplot(131)
axis('off')
imshow(im1)
subplot(132)
axis('off')
imshow(im2)
subplot(133)
axis('off')
imshow(im3)

#选定im1角上的一些点
m,n = im1.shape[:2]
fp = array([[0,m,m,0],[0,0,n,n],[1,1,1,1]])

# 第一个三角形
tp2 = tp[:,:3]
fp2 = fp[:,:3]

# 计算仿射变换H,并且将其应用于图像im1
H = homography.Haffine_from_points(tp2,fp2)

#affine仿射变换的方式把第一幅图像变到第二幅图像里面
im1_t = ndimage.affine_transform(im1,H[:2,:2],
(H[0,2],H[1,2]),im2.shape[:2])
# 对图像进行alpha通道处理,三角
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值