Python基本运算几何运算处理数字图像示例
目录
- 平移
- 镜像
- 水平镜像
- 垂直镜像
- 旋转
- 以图像左上角为旋转中心
- 以图像中心为旋转中心
- 缩放
- 插值算法
- 最近邻插值算法
- 双线性插值算法
- 三次内插法
改变图像中物体对象(像素)之间的空间关系。
平移
# 定义平移矩阵,需要是numpy的float32类型# x轴平移50,y轴平移80, 2*3矩阵 M = np.array([[1, 0, 50], [0, 1, 80]], dtype=np.float32) # 用仿射变换实现平移 new_image = cv2.warpAffine(image, M, (w, h), borderValue=(0, 0, 0))
镜像
水平镜像
# Flipped Horizontally 水平翻转 Horizontal = cv2.flip(image, 1)
垂直镜像
# Flipped Vertically 垂直翻转 Vertical = cv2.flip(image, 0)
旋转
以图像左上角为旋转中心
# 定义旋转矩阵, 2x3M = np.array([[ np.cos(Beta), np.sin(Beta), 0], [-np.sin(Beta), np.cos(Beta), 0]], dtype=np.float32) # 用仿射变换实现旋转new_image = cv2.warpAffine(image, M, (w, h))
以图像中心为旋转中心
# 定义旋转矩阵,这次使用cv2.getRotationMatrix2D()这个函数, # 其中第一个参数为旋转的中心点,第二个为旋转角度,第三个为缩放比例 M = cv2.getRotationMatrix2D((h/2,w/2), 30, 1) print(M) # 用仿射变换实现旋转 new_image = cv2.warpAffine(image, M, (w, h), borderMode=cv2.BORDER_DEFAULT)
缩放
new_image = cv2.resize(image, (0, 0), fx=3, fy=3, interpolation=cv2.INTER_NEAREST)
插值算法
最近邻插值算法
cv2.INTER_NEAREST
双线性插值算法
cv2.INTER_LINEAR
三次内插法
cv2.INTER_CUBIC
以上就是Python基本运算几何运算处理数字图像示例的详细内容,更多关于Python几何运算处理数字图像的资料请关注我们其它相关文章!
相关推荐
-
python数字图像处理之高级形态学处理
形态学处理,除了最基本的膨胀.腐蚀.开/闭运算.黑/白帽处理外,还有一些更高级的运用,如凸包,连通区域标记,删除小块区域等. 1.凸包 凸包是指一个凸多边形,这个凸多边形将图片中所有的白色像素点都包含在内. 函数为: skimage.morphology.convex_hull_image(image) 输入为二值图像,输出一个逻辑二值图像.在凸包内的点为True, 否则为False 例: import matplotlib.pyplot as plt from skimage import d
-
python数字图像处理之骨架提取与分水岭算法
骨架提取与分水岭算法也属于形态学处理范畴,都放在morphology子模块内. 1.骨架提取 骨架提取,也叫二值图像细化.这种算法能将一个连通区域细化成一个像素的宽度,用于特征提取和目标拓扑表示. morphology子模块提供了两个函数用于骨架提取,分别是Skeletonize()函数和medial_axis()函数.我们先来看Skeletonize()函数. 格式为:skimage.morphology.skeletonize(image) 输入和输出都是一幅二值图像. 例1: from s
-
Python数字图像处理之霍夫线变换实现详解
在图片处理中,霍夫变换主要是用来检测图片中的几何形状,包括直线.圆.椭圆等. 在skimage中,霍夫变换是放在tranform模块内,本篇主要讲解霍夫线变换. 对于平面中的一条直线,在笛卡尔坐标系中,可用y=mx+b来表示,其中m为斜率,b为截距.但是如果直线是一条垂直线,则m为无穷大,所有通常我们在另一坐标系中表示直线,即极坐标系下的r=xcos(theta)+ysin(theta).即可用(r,theta)来表示一条直线.其中r为该直线到原点的距离,theta为该直线的垂线与x轴的夹角.如
-
Python常用数字处理基本操作汇总
一些基本的操作,在工作者遇到相关问题要有相关印象. 一. 你想对浮点数执行指定精度的舍入运算 对于简单的舍入运算,使用内置的 round(value, ndigits) 函数即可.比如: >>> round(1.23, 1) 1.2 >>> round(1.27, 1) 1.3 >>> round(-1.27, 1) -1.3 >>> round(1.25361,3) 1.254 >>> 当一个值刚好在两个边界的中间
-
python数字图像处理实现直方图与均衡化
在图像处理中,直方图是非常重要,也是非常有用的一个处理要素. 在skimage库中对直方图的处理,是放在exposure这个模块中. 1.计算直方图 函数:skimage.exposure.histogram(image,nbins=256) 在numpy包中,也提供了一个计算直方图的函数histogram(),两者大同小义. 返回一个tuple(hist, bins_center), 前一个数组是直方图的统计量,后一个数组是每个bin的中间值 import numpy as np from s
-
Python基本运算几何运算处理数字图像示例
目录 平移 镜像 水平镜像 垂直镜像 旋转 以图像左上角为旋转中心 以图像中心为旋转中心 缩放 插值算法 最近邻插值算法 双线性插值算法 三次内插法 改变图像中物体对象(像素)之间的空间关系. 平移 # 定义平移矩阵,需要是numpy的float32类型# x轴平移50,y轴平移80, 2*3矩阵 M = np.array([[1, 0, 50], [0, 1, 80]], dtype=np.float32) # 用仿射变换实现平移 new_image = cv2.warpAffine(imag
-
Python线性方程组求解运算示例
本文实例讲述了Python线性方程组求解运算.分享给大家供大家参考,具体如下: 求解线性方程组比较简单,只需要用到一个函数(scipy.linalg.solve)就可以了.比如我们要求以下方程的解,这是一个非齐次线性方程组: 3x_1 + x_2 - 2x_3 = 5 x_1 - x_2 + 4x_3 = -2 2x_1 + 3x_3 = 2.5 代码如下: # coding=utf-8 import numpy as np from scipy.linalg import solve a =
-
纯python进行矩阵的相乘运算的方法示例
本文介绍了纯python进行矩阵的相乘运算的方法示例,分享给大家,具体如下: def matrixMultiply(A, B): # 获取A的行数和列数 A_row, A_col = shape(A) # 获取B的行数和列数 B_row, B_col = shape(B) # 不能运算情况的判断 if(A_col != B_row): raise ValueError # 最终的矩阵 result = [] # zip 解包后是转置后的元组,强转成list, 存入result中 BT = [li
-
Python OpenCV形态学运算示例详解
目录 1. 腐蚀 & 膨胀 1.1什么是腐蚀&膨胀 1.2 腐蚀方法 cv2.erode() 1.3 膨胀方法 cv2.dilate() 2. 开运算 & 闭运算 2.1 简述 2.2 开运算 2.3 闭运算 3. morphologyEx()方法 3.1 morphologyEx()方法 介绍 3.2 梯度运算 3.3 顶帽运算 3.4 黑帽运算 1. 腐蚀 & 膨胀 1.1什么是腐蚀&膨胀 腐蚀&膨胀是图像形态学中的两种核心操作 腐蚀可以描述为是让图像沿
-
Python整型运算之布尔型、标准整型、长整型操作示例
本文实例讲述了Python整型运算之布尔型.标准整型.长整型操作.分享给大家供大家参考,具体如下: #coding=utf8 def integerType(): ''''' 布尔型: 该值的取值范围只有两个值:True(1).False(0) ''' Tbool=True Fbool=False print "The True is stand for %d" %(Tbool) print "The False is stand for %d" %(Fbool)
-
Python双精度浮点数运算并分行显示操作示例
本文实例讲述了Python双精度浮点数运算并分行显示操作.分享给大家供大家参考,具体如下: #coding=utf8 def doubleType(): ''''' Python中的浮点数是双精度浮点数,可以用十进制或科学计数法表示. 实际精度依赖于机器架构和创建Python解释器的编译器. 浮点数值通常都有一个小数点和一个可选的后缀e(大写或小写,表示科学计数法). 在e和指数之间可以用正(+)或负(-)表示指数的正负(正数可以省略符号) ''' (one,two,three,four,fiv
-
Python常见数字运算操作实例小结
本文实例讲述了Python常见数字运算操作.分享给大家供大家参考,具体如下: Python 解释器可以作为一个简单的计算器:您可以在解释器里输入一个表达式,它将输出表达式的值. 表达式的语法很直白: +, -, * 和/ 和在许多其它语言(如Pascal或C)里一样:括号可以用来为运算分组.例如: >>> 2 + 2 4 >>> 50 - 5*6 20 >>> (50 - 5*6) / 4 5.0 >>> 8 / 5 # 总是返回一个
-
对Python中for复合语句的使用示例讲解
当Python中用到双重for循环设计的时候我一般会使用循环的嵌套,但是在Python中其实还存在另一种技巧--for复合语句. 简单写一个小程序,用于延时循环嵌套功能如下: #!/usr/bin/python defFunc1(ten_num,one_num): for i in range(ten_num): for j in range(one_num): print(10 * i + j) Func1(2,5)的执行结果如下: 0 1 2 3 4 10 11 12 13 14 以上是一个
-
Python实现图像的垂直投影示例
Python + OpenCV 直接上代码 import cv2 import numpy as np from matplotlib import pyplot as plt from PIL import Image img=cv2.imread('0002.jpg') #读取图片,装换为可运算的数组 GrayImage=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) #将BGR图转为灰度图 ret,thresh1=cv2.threshold(GrayImage,1
-
Python实现病毒仿真器的方法示例(附demo)
最近新冠在神州大陆横行,全国上下一心抗击疫情.作为一枚程序员,我也希望可以为抗击疫情做出自己的贡献,钟院士一直劝说大家不要出门,减少人口间的流动.对此,我特意做了一个病毒仿真器,探询冠状病毒传播. 1. 仿真效果 仿真开始,一开始只有5个发病者,传播率为0.8,潜伏期为14天 由于人口的流动,以及医院床位的隔离,一开始病毒扩撒不是很速度 随着医院床位满了,隔离失败,加上人口的流动,病患数开始几何式的增加 2. 什么是仿真器 仿真器(emulator)以某一系统复现另一系统的功能.与计算机模拟系统
随机推荐
- js限制文本框只能输入数字(正则表达式)
- Python使用smtplib模块发送电子邮件的流程详解
- PHP导出EXCEL快速开发指南--PHPEXCEL的使用详解
- android开发教程之系统资源的使用方法 android资源文件
- Mysql的常用命令
- Python开发的单词频率统计工具wordsworth使用方法
- Centos 5下配置https服务器的方法
- jQuery遍历Form示例代码
- sql中varchar和nvarchar的区别与使用方法
- sql查询点滴记录
- 数据库表的查询操作(实验二)
- SQLServer 数据库备份过程中经常遇到的九种情况
- Java8新特性之Base64详解_动力节点Java学院整理
- Java编程发展历史(动力节点Java学院整理)
- php动态生成版权所有信息的方法
- php-fpm配置详解
- Router解决跨模块下的页面跳转示例
- 详解vue项目中调用百度地图API使用方法
- Python的条件表达式和lambda表达式实例
- React Native开发中自动打包脚本的实例代码