opencv_python学习笔记十一
来源:互联网 发布:乳胶床垫 知乎 编辑:程序博客网 时间:2024/06/07 20:35
14 几何变换
移动,旋转,仿射变换
常用函数:
cv2.getPerspectiveTransform()
函数原型
def getPerspectiveTransform(src,
dst)
cv2.warpAffine()
函数原型,接收2*3的矩阵
def warpAffine(src, #输入源图像
M,#透视变换的矩阵
dsize,#输出图像尺寸
dst=None,#输出图像
flags=None,#输出图像的插值方法
borderMode=None,#图像边界的处理方式
borderValue=None)#边界有颜色设置
cv2.warpPerspective()
函数原型,接收3*3的矩阵
def warpPerspective(src,#输入图像
M,
dsize,#输出图像大小
dst=None,#输出图像
flags=None, #输出图像的插值方法
borderMode=None,#图像边界的处理方式
borderValue=None)#边界颜色的设置
1 扩展缩放
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2016/11/15 14:10
# @Author : Retacn
# @Site : 扩展缩放改变图像尺寸大小
# @File : imageZoom.py
# @Software: PyCharm
import cv2
import numpy asnp
img=cv2.imread('test.jpg')
#none是输出图像的尺寸,由于在后面设置,所以这里设为none
res=cv2.resize(img,None,fx=2,fy=2,interpolation=cv2.INTER_CUBIC)
#设置输出图像的尺寸
height,width=img.shape[:2]
res=cv2.resize(img,(2*width,2*height),interpolation=cv2.INTER_CUBIC)
while(1):
cv2.imshow('res',res)
cv2.imshow('img',img)
#按esc退出
ifcv2.waitKey(1)&0xFF==27:
break
cv2.destroyAllWindows()
2 平移
示例代码如下:
3 旋转
示例代码:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2016/11/15 15:00
# @Author : Retacn
# @Site : 图像旋转
# @File : imageRotate.py
# @Software: PyCharm
import cv2
import numpy asnp
img=cv2.imread('test.jpg',0)
rows,cols=img.shape
#可以通过设置以下三个参数
m=cv2.getRotationMatrix2D((cols/2,rows/2),#旋转中心
45,#旋转角度
0.6)#缩放比例
dst=cv2.warpAffine(img,m,(2*cols,2*rows))
while(1):
cv2.imshow('img',dst)
#按下esc退出
ifcv2.waitKey(1)&0xFF==27:
break
#释放
cv2.destroyAllWindows()
4 仿射变换
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2016/11/15 15:11
# @Author : Retacn
# @Site : 仿射变换
# @File : imageAffine.py
# @Software: PyCharm
import cv2
import numpy asnp
from matplotlib import pyplot asplt
img=cv2.imread('test1.jpg')
rows,cols,ch = img.shape
pts1 = np.float32([[56,65],[368,52],[28,387],[389,390]])
pts2 = np.float32([[0,0],[300,0],[0,300],[300,300]])
M = cv2.getPerspectiveTransform(pts1,#输入点
pts2)#输出点
dst = cv2.warpPerspective(img,M,(cols,rows))
plt.subplot(121),plt.imshow(img),plt.title('Input')
plt.subplot(122),plt.imshow(dst),plt.title('Output')
plt.show()
5 透视变换
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2016/11/15 16:34
# @Author : Retacn
# @Site : 透视变换
# @File : imagePerspective.py
# @Software: PyCharm
import cv2
import numpy asnp
from matplotlib import pyplot asplt
img=cv2.imread('test1.jpg')
rows,cols,ch = img.shape
pts1 = np.float32([[56,65],[368,52],[28,387],[389,390]])
pts2 = np.float32([[0,0],[300,0],[0,300],[300,300]])
M = cv2.getPerspectiveTransform(pts1,pts2)
dst = cv2.warpPerspective(img,M,(rows,cols))
plt.subplot(121),plt.imshow(img),plt.title('Input')
plt.subplot(122),plt.imshow(dst),plt.title('Output')
plt.show()
- opencv_python学习笔记十一
- opencv_python学习笔记一
- opencv_python学习笔记二
- opencv_python学习笔记三
- opencv_python学习笔记十二
- opencv_python学习笔记十八
- Opencv_Python学习笔记--OpenCV中的GUI特性
- OpenCV_Python学习笔记--OpenCV中的绘图函数
- OpenCV_Python 学习笔记(二)图像的基本操作
- Allegro学习笔记十一
- C#学习笔记(十一)
- 学习笔记(十一)
- c++学习笔记十一
- OpenGL学习笔记(十一)
- Java学习笔记十一
- Django 学习笔记(十一)
- c++学习笔记十一
- CUDA学习笔记十一
- 数据结构实验之查找三:树的种类统计
- Java 泛型
- 森林结点数,边数与树个数的关系
- Java 关于支付的实现(微信、支付宝)
- Java 中的两种异常(Checked exceptions 和 Unchecked exceptions)
- opencv_python学习笔记十一
- SQLite多次访问造成的error
- 完全备份、差异备份以及增量备份的区别
- caffe安装系列——安装GCC4.7和G++4.7并降级
- opencv_python学习笔记十二
- Linux音频驱动-ALSA概述
- JavaScript中call、apply、bind函数的用法
- word中图片较多时用的小技巧
- HTC Vive开发笔记之手柄震动 转