python计算机视觉学习笔记(3)--图像映射之图像嵌入
2019-03-19 22:52
344 查看
图像中的图像
仿射扭曲的简单例子就是将图像或者图像的一部分放置到另一幅图像中,使得它们能够和指定的区域或者标记物对齐。
将函数image_in_image添加到warp.py文件中。该函数参数为两个图像和一个坐标。并且tp是按照左上角逆时针计算
[code]def image_in_image(im1,im2,tp): """ Put im1 in im2 with an affine transformation such that corners are as close to tp as possible. tp are homogeneous and counter-clockwise from top left. """ # points to warp from m,n = im1.shape[:2] fp = array([[0,m,m,0],[0,0,n,n],[1,1,1,1]]) # compute affine transform and apply H = homography.Haffine_from_points(tp,fp) im1_t = ndimage.affine_transform(im1,H[:2,:2], (H[0,2],H[1,2]),im2.shape[:2]) alpha = (im1_t > 0) return (1-alpha)*im2 + alpha*im1_t
将扭曲的图像和第二张图像融合就创建了alpha图像。该图像定义了每个像素从各个图像中获取的像素值成分多少。
alpha通道
一个图像的每个像素都有 RGB 三个通道,后来 Alvy Ray Smith 提出每个像素再增加一个 Alpha 通道,取值为0到1,用来储存这个像素是否对图片有「贡献」,0代表透明、1代表不透明。也就是说,「Alpha 通道」储存一个值,其外在表现是「透明度」 。阿尔法通道(α Channel或Alpha Channel)是指一张图片的透明和半透明度。例如:一个使用每个像素16比特存储的位图,对于图形中的每一个像素而言,可能以5个比特表示红色,5个比特表示绿色,5个比特表示蓝色,最后一个比特是阿尔法。在这种情况下,它要么表示透明要么不是,因为阿尔法比特只有0或1两种不同表示的可能性。又如一个使用32个比特存储的位图,每8个比特表示红绿蓝,和阿尔法通道。在这种情况下,就不光可以表示透明还是不透明,阿尔法通道还可以表示256级的半透明度,因为阿尔法通道有8个比特可以有256种不同的数据表示可能性。
实验代码及其结果:
[code] # -*- coding: utf-8 -*- from PCV.geometry import warp, homography from PIL import Image from pylab import * from scipy import ndimage # example of affine warp of im1 onto im2 im1 = array(Image.open(r'C:\Users\noob\Desktop\pcv-book-code-master\ch03\4.jpg').convert('L')) im2 = array(Image.open(r'C:\Users\noob\Desktop\pcv-book-code-master\ch03\1.jpg').convert('L')) # set to points tp = array([[15,279,277,39],[36,34,542,540],[1,1,1,1]]) #tp = array([[675,826,826,677],[55,52,281,277],[1,1,1,1]]) im3 = warp.image_in_image(im1,im2,tp) figure() gray() subplot(141) axis('off') imshow(im1) subplot(142) axis('off') imshow(im2) subplot(143) axis('off') imshow(im3) show()
参考:
相关文章推荐
- Python计算机视觉编程 - 第三章 图像映射 -图像嵌入
- python计算机视觉编程(四)图像到图像的映射
- 2018Python OpenCV视频教程计算机视觉图像识别从基础到深度学习实战目前最新
- 计算机视觉编程学习笔记——Python opencv安装过程
- (一)图像坐标:我想和世界坐标谈谈(A) 【计算机视觉学习笔记--双目视觉几何框架系列】
- (一)图像坐标:我想和世界坐标谈谈(A) 【计算机视觉学习笔记--双目视觉几何框架系列】
- (二)图像坐标:我想和世界坐标谈谈(B) 【计算机视觉学习笔记--双目视觉的几何框架系列】
- 计算机视觉与图像处理学习笔记(二)win32+mingw+opencv搭建
- 图像坐标:我想和世界坐标谈谈(A) 【计算机视觉学习笔记--双目视觉几何框架系列】
- 计算机视觉学习笔记:图像特征提取
- (一)图像坐标:我想和世界坐标谈谈(A) 【计算机视觉学习笔记--双目视觉几何框架系列】
- 基于OpenCV和Python的计算机视觉学习笔记
- [计算机视觉:算法与应用]学习笔记一:图像形成
- 计算机视觉与图像处理学习笔记(三)opencv的基本数据类型与简单图像处理函数
- python计算机视觉学习笔记(一)直方图,灰度化,高斯滤波,直方图均衡化
- 【计算机视觉】EmguCV学习笔记(4)分离颜色通道以及多通道图像混合
- (二)图像坐标:我想和世界坐标谈谈(B) 【计算机视觉学习笔记--双目视觉的几何框架系列】
- 计算机视觉与图像处理学习笔记(一)
- 计算机视觉*学习笔记一:python+opencv+pycharm community安装
- 《OpenCV 3计算机视觉:Python语言实现》学习笔记——目标跟踪中基本运动检测的思考