python opencv实现切变换 不裁减图片


Posted in Python onJuly 26, 2018

本文实例为大家分享了python opencv实现切变换的具体代码,供大家参考,具体内容如下

# -*- coding:gb2312 -*-
import cv2
from math import *
import numpy as np

img = cv2.imread("3-2.jpg")

height,width=img.shape[:2]

degreeAffine=45

#切变换最后结果
heightAffine=height
widthAffine=int(2*height*tan(radians(degreeAffine))+width)

# 随意两点得到仿射变换矩阵
# point1=np.float32([[50,50],[200,50],[50,200]])
# point2=np.float32([[50,50],[100,50],[50,200]])
# matAffine=cv2.getAffineTransform(point1,point2)


#如果结果是正的图片
tempY=(widthAffine+1)/2-width/2
tempX=(heightAffine+1)/2-height/2
temp=np.zeros((heightAffine,widthAffine,3),np.uint8)+255
temp[tempX:(tempX+height),tempY:(tempY+width)]=img
cv2.imshow("temp",temp)


#仿射变换矩阵
matAffine=np.zeros([2,3])
matAffine[0,0]=1
matAffine[0,1]=tan(radians(degreeAffine))
matAffine[0,2]=(widthAffine-width)/2
matAffine[1,0]=0
matAffine[1,1]=1
matAffine[1,2]=(heightAffine-height)/2


imgAfiine=cv2.warpAffine(img,matAffine,(widthAffine,heightAffine),borderValue=(255,255,255))

cv2.imwrite("temp.jpg",temp)
cv2.imwrite("imgAffine.jpg",imgAfiine)
cv2.imshow("imgAffine",imgAfiine)

效果图:

python opencv实现切变换 不裁减图片

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
跟老齐学Python之不要红头文件(2)
Sep 28 Python
python+django快速实现文件上传
Oct 24 Python
使用pyecharts无法import Bar的解决方案
Apr 23 Python
Python构建XML树结构的方法示例
Jun 30 Python
Python 结巴分词实现关键词抽取分析
Oct 21 Python
python中使用PIL制作并验证图片验证码
Mar 15 Python
对python中的pop函数和append函数详解
May 04 Python
Python中__slots__属性介绍与基本使用方法
Sep 05 Python
在macOS上搭建python环境的实现方法
Aug 13 Python
Python numpy.zero() 初始化矩阵实例
Nov 27 Python
Python实现删除某列中含有空值的行的示例代码
Jul 20 Python
安装并免费使用Pycharm专业版(学生/教师)
Sep 24 Python
Flask之flask-script模块使用
Jul 26 #Python
对tf.reduce_sum tensorflow维度上的操作详解
Jul 26 #Python
TensorFlow用expand_dim()来增加维度的方法
Jul 26 #Python
Python迭代器与生成器基本用法分析
Jul 26 #Python
Python实现矩阵相乘的三种方法小结
Jul 26 #Python
python实现泊松图像融合
Jul 26 #Python
python中的decorator的作用详解
Jul 26 #Python
You might like
一个查看session内容的函数
2006/10/09 PHP
javascript显示选择目录对话框的代码
2008/11/10 Javascript
js实现addClass,removeClass,hasClass的函数代码
2011/07/13 Javascript
js检测网络是否具体连接功能的代码
2014/05/23 Javascript
两种方法实现在HTML页面加载完毕后运行某个js
2014/06/16 Javascript
让JavaScript中setTimeout支持链式操作的方法
2015/06/19 Javascript
JavaScript中对象的不同创建方法
2016/08/12 Javascript
Vue.js每天必学之过渡与动画
2016/09/06 Javascript
js实现3D图片环展示效果
2017/03/09 Javascript
JavaScript注册时密码强度校验代码
2017/06/30 Javascript
详解JS中的this、apply、call、bind(经典面试题)
2017/09/19 Javascript
vue-router 路由基础的详解
2017/10/17 Javascript
关于js的三种使用方式(行内js、内部js、外部js)的程序代码
2018/05/05 Javascript
快速了解Node中的Stream流是什么
2019/02/13 Javascript
ElementUI radio组件选中小改造
2019/08/12 Javascript
微信小程序中的video视频实现 自定义播放按钮、封面图、视频封面上文案
2020/01/02 Javascript
Nuxt.js的路由跳转操作(页面跳转nuxt-link)
2020/11/06 Javascript
使用Python进行二进制文件读写的简单方法(推荐)
2016/09/12 Python
Python算法之图的遍历
2017/11/16 Python
tornado 多进程模式解析
2018/01/15 Python
win10系统下Anaconda3安装配置方法图文教程
2018/09/19 Python
Python实现Selenium自动化Page模式
2019/07/14 Python
Django多数据库的实现过程详解
2019/08/01 Python
Django在admin后台集成TinyMCE富文本编辑器的例子
2019/08/09 Python
Python中的With语句的使用及原理
2020/07/29 Python
python3中数组逆序输出方法
2020/12/01 Python
python利用appium实现手机APP自动化的示例
2021/01/26 Python
Python实现网络聊天室的示例代码(支持多人聊天与私聊)
2021/01/27 Python
美国男士西装打折店:Jos. A. Bank
2017/11/13 全球购物
Zooplus葡萄牙:欧洲领先的网上宠物商店
2018/07/01 全球购物
港湾网络笔试题
2014/04/19 面试题
生产车间主管岗位职责
2013/12/28 职场文书
2014年个人总结范文
2015/03/09 职场文书
2015年调度员工作总结
2015/04/30 职场文书
2019年英语版感谢信(8篇)
2019/09/29 职场文书
【海涛教你打DOTA】剑圣第一人称视角解说
2022/04/01 DOTA