- 浏览: 499160 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (502)
- Java (70)
- Linux (10)
- 数据库 (38)
- 网络 (10)
- WEB (13)
- JSP (4)
- 互联网 (71)
- JavaScript (30)
- Spring MVC (19)
- HTML (13)
- CSS (3)
- AngularJS (18)
- Redis (5)
- Bootstrap CSS (1)
- ZooKeeper (4)
- kafka (6)
- 服务器缓存 (4)
- Storm (1)
- MongoDB (9)
- Spring boot (16)
- log4j (2)
- maven (3)
- nginx (5)
- Tomcat (2)
- Eclipse (4)
- Swagger (2)
- Netty (5)
- Dubbo (1)
- Docker (7)
- Hadoop (12)
- OAuth (1)
- webSocket (4)
- 服务器性能 (7)
- Session共享 (1)
- tieye修改 (1)
- 工作 (1)
- 有用的语录 (0)
- https (2)
- common (5)
- 产品开发管理 (1)
- CDN 工作原理 (1)
- APNS、GCM (1)
- 架构图 (3)
- 功能实现分析 (1)
- JMX (1)
- 服务器相关操作命令 (1)
- img02 (0)
- 服务器环境搭建 (9)
- goodMenuBook (1)
- CEInstantPot (0)
- 有用数据 (1)
- 百度地图WEB API (2)
- 正则表达式 (1)
- 样式例子 (2)
- staticRecipePressureCooker.zip (1)
- jCanvas (1)
- 网站攻击方法原理 (1)
- 架构设计 (3)
- 物联网相关 (3)
- 研发管理 (7)
- 技术需求点 (1)
- 计划 (1)
- spring cloud (11)
- 服务器开发的一些实用工具和方法 (1)
- 每天学到的技术点 (4)
- Guava (1)
- ERP 技术注意要点 (2)
- 微信小程序 (1)
- FineRepor (1)
- 收藏夹 (1)
- temp (5)
- 服务架构 (4)
- 任职资格方案 (0)
- osno_test (1)
- jquery相关 (3)
- mybatis (4)
- ueditor (1)
- VueJS (7)
- python (10)
- Spring EL (1)
- shiro (1)
- 前端开发原理与使用 (7)
- YARN (1)
- Spark (1)
- Hbase (2)
- Pig (2)
- 机器学习 (30)
- matplotlib (1)
- OpenCV (17)
- Hystrix (1)
- 公司 (1)
- miniui (4)
- 前端功能实现 (3)
- 前端插件 (1)
- 钉钉开发 (2)
- Jenkins (1)
- elasticSearch使用 (2)
- 技术规范 (4)
- 技术实现原理 (0)
最新评论
opencv 图像几何变换
实现旋转、平移和缩放图片
了解仿射变换和透视变换
OpenCV函数:cv2.resize(), cv2.warpAffine(), cv2.warpPerspective()
缩放
可以按照比例缩放,也可以按照指定的大小缩放
resize(src, dsize, dst=None, fx=None, fy=None, interpolation=None)
平移图片(用仿射变换来完成的)
warpAffine(src, M, dsize, dst=None, flags=None, borderMode=None, borderValue=None)
M为变换矩阵
borderMode: 边界像素模式,有默认值BORDER_CONSTANT
borderValue: 边界取值,有默认值Scalar()即0
旋转图片
旋转同平移一样,也需要定义一个变换矩阵。OpenCV直接提供了cv2.getRotationMatrix2D()函数用来生成这个矩阵,
getRotationMatrix2D(center, angle, scale)
(中心点,角度,缩放)
翻转图片
镜像翻转图片,可以用cv2.flip()函数
flip(src, flipCode, dst=None)
参数2 = 0:垂直翻转(沿x轴),参数2 > 0: 水平翻转(沿y轴),参数2 < 0: 水平垂直翻转。
仿射变换
要生成这个变换矩阵,需要定义变换前后的三个点,
生成变换矩阵 getAffineTransform(src, dst)
透视变换
透视变换绝对是一项很酷的功能。我们经常会用手机去拍身份证和文件,无论你怎么拍,貌似都拍不正或者有边框。如果你使用过手机上面一些扫描类软件,比如”扫描全能王“,”Office Lens“,它们能很好地矫正图片。
生成透视变换矩阵
getPerspectiveTransform(src, dst)
透视变换
warpPerspective(src, M, dsize, dst=None, flags=None, borderMode=None, borderValue=None)
实现旋转、平移和缩放图片
了解仿射变换和透视变换
OpenCV函数:cv2.resize(), cv2.warpAffine(), cv2.warpPerspective()
缩放
可以按照比例缩放,也可以按照指定的大小缩放
resize(src, dsize, dst=None, fx=None, fy=None, interpolation=None)
平移图片(用仿射变换来完成的)
warpAffine(src, M, dsize, dst=None, flags=None, borderMode=None, borderValue=None)
M为变换矩阵
borderMode: 边界像素模式,有默认值BORDER_CONSTANT
borderValue: 边界取值,有默认值Scalar()即0
旋转图片
旋转同平移一样,也需要定义一个变换矩阵。OpenCV直接提供了cv2.getRotationMatrix2D()函数用来生成这个矩阵,
getRotationMatrix2D(center, angle, scale)
(中心点,角度,缩放)
翻转图片
镜像翻转图片,可以用cv2.flip()函数
flip(src, flipCode, dst=None)
参数2 = 0:垂直翻转(沿x轴),参数2 > 0: 水平翻转(沿y轴),参数2 < 0: 水平垂直翻转。
仿射变换
要生成这个变换矩阵,需要定义变换前后的三个点,
生成变换矩阵 getAffineTransform(src, dst)
透视变换
透视变换绝对是一项很酷的功能。我们经常会用手机去拍身份证和文件,无论你怎么拍,貌似都拍不正或者有边框。如果你使用过手机上面一些扫描类软件,比如”扫描全能王“,”Office Lens“,它们能很好地矫正图片。
生成透视变换矩阵
getPerspectiveTransform(src, dst)
透视变换
warpPerspective(src, M, dsize, dst=None, flags=None, borderMode=None, borderValue=None)
# -*-encoding:utf-8-*- import pytesseract from PIL import Image from PIL import ImageFilter from PIL import ImageFont from PIL import ImageDraw import numpy as np from PIL import Image import cv2 def main(): # 颜色空间转换 img = cv2.imread("learn.jpg") # =================================缩放 # 按照指定的宽度、高度缩放图片 res = cv2.resize(img, (150, 150)) # 按照比例缩放,如x,y轴均放大一倍 res2 = cv2.resize(img, None, fx=0.5, fy=0.5, interpolation=cv2.INTER_LINEAR) # cv2.imshow('shrink', res) # cv2.imshow('zoom', res2) # cv2.waitKey(0) # =================================平移图片 rows, cols = img.shape[:2] print("rows = ", rows) print("cols = ", cols) M = np.float32([[1, 0, 100], [0, 1, 50]]) # x轴平移100,y轴平移50, # 用仿射变换实现平移(平移后的位置用黑包色填充(borderValue指定)) dst = cv2.warpAffine(img, M, (cols, rows), borderValue=(255, 255, 255)) # cv2.imshow('shift', dst) # cv2.waitKey(0) # =================================旋转图片 M = cv2.getRotationMatrix2D((cols / 2, rows / 2), 45, 1) print("Rotation M = ", M) dst = cv2.warpAffine(img, M, (cols, rows)) # cv2.imshow('rotation', dst) # cv2.waitKey(0) # =================================翻转图片 dst = cv2.flip(img, 1) # 参数2 = 0:垂直翻转(沿x轴),参数2 > 0: 水平翻转(沿y轴),参数2 < 0: 水平垂直翻转。 # cv2.imshow('flip', dst) # cv2.waitKey(0) # =================================仿射变换 # 变换前的三个点 pts1 = np.float32([[50, 65], [150, 65], [210, 210]]) # 变换后的三个点 pts2 = np.float32([[50, 100], [150, 65], [100, 250]]) # 生成变换矩阵 M = cv2.getAffineTransform(pts1, pts2) print("getAffineTransform M = ", M) dst = cv2.warpAffine(img, M, (cols, rows)) # # cv2.imshow('warpAffine', dst) # cv2.waitKey(0) # =================================透视变换 # 原图中卡片的四个角点 pts1 = np.float32([[148, 80], [437, 114], [94, 247], [423, 288]]) # 变换后分别在左上、右上、左下、右下四个点 pts2 = np.float32([[0, 0], [320, 0], [0, 178], [320, 178]]) # 生成透视变换矩阵 M = cv2.getPerspectiveTransform(pts1, pts2) print("getPerspectiveTransform M = ", M) # 进行透视变换 dst = cv2.warpPerspective(img, M, (cols, rows)) cv2.imshow('warpAffine', dst) cv2.waitKey(0) if __name__ == '__main__': main()
发表评论
-
识别图片中的人脸
2018-10-31 21:21 796识别图片中的人脸 # -*-encoding:ut ... -
opencv 霍夫变换(识别出图像中的直线和圆)
2018-10-23 20:34 3121# -*-encoding:utf-8-*- import ... -
opencv 模板匹配(在大图中找小图)
2018-10-22 21:31 8437# -*-encoding:utf-8-*- import ... -
opencv 直方图
2018-10-22 21:30 499# -*-encoding:utf-8-*- import ... -
opencv 轮廓特征
2018-10-21 20:35 1236# -*-encoding:utf-8-*- import ... -
opencv 轮廓
2018-10-21 20:34 521# -*-encoding:utf-8-*- import ... -
opencv 膨胀腐蚀开闭
2018-10-21 20:34 878# -*-encoding:utf-8-*- import ... -
opencv 边缘检测
2018-10-21 20:32 770# -*-encoding:utf-8-*- import ... -
opencv 平滑图像
2018-10-17 21:25 726opencv 平滑图像 模糊/平滑图片来消除图片噪声 O ... -
opencv 图像混合
2018-10-17 20:58 711opencv 图像混合 图片间的数学运算,如相加、按位运算 ... -
opencv 绘图功能
2018-10-16 22:04 843opencv 绘图功能 学习画线、圆和矩形等多种几何形状, ... -
opencv 阈值分割
2018-10-16 16:02 1237opencv 阈值分割 同的阈值方法”二值化”图像。 使用 ... -
opencv 颜色空间转换
2018-10-15 19:42 1315opencv 颜色空间转换 颜色空间转换,如BGR↔Gray ... -
openvc 图像基本操作
2018-10-15 19:11 977openvc 图像基本操作 访问和修改图片像素点的值 px ... -
Python OpenCV 基本操作
2018-10-12 22:46 399Python OpenCV 基本操作 加载图片,显示图片, ... -
Python OpenCV 形态学操作(腐蚀膨胀,开运算和闭运算)
2018-10-12 22:32 5347Python OpenCV 形态学操作(腐蚀膨胀,开运算和闭运 ...
相关推荐
这将有助于你掌握图像几何变换的基本原理和应用。 总之,通过QT+OpenCV的组合,我们可以方便地实现图像的各种几何变换,这些变换在图像分析、物体识别、图像拼接等应用场景中都有广泛的应用。理解并熟练掌握这些...
通过上述介绍可以看出,OpenCV为我们提供了一系列强大的工具来实现图像几何变换。无论是简单的平移、缩放、旋转还是复杂的仿射变换、透视变换,都可以通过相应的函数方便地实现。掌握这些基本变换不仅有助于图像处理...
本文实例为大家分享了OpenCV图像几何变换之透视变换的具体代码,供大家参考,具体内容如下 1. 基本原理 透视变换(Perspective Transformation)的本质是将图像投影到一个新的视平面,其通用变换公式为: (u,v...
本主题将深入探讨如何使用OpenCV进行图像的几何变换,主要包括图像的旋转、缩放、内凹变形和外凸变形。我们将使用C++语言,并在Visual Studio 2013环境下进行开发,使用的OpenCV版本为3。 首先,图像旋转是改变图像...
通过理解并掌握OpenCV中的仿射变换,我们能够实现更复杂的图像处理任务,例如图像的几何矫正、透视变换等。 在提供的压缩包文件中,`main.cpp`可能是实现上述仿射变换的代码示例,而`放射变换.doc`可能是关于放射...
1. **图像几何变换**:这是图像处理的一个基本概念,它涉及将图像从一个坐标系映射到另一个坐标系。常见的几何变换有平移、旋转、缩放、剪切和扭曲等。在Python中,通常使用OpenCV库来实现这些操作,如`geometric_...
在计算机视觉和图像处理领域,图像几何变换是基础且重要的技术之一。这些变换可以改变图像的位置、方向或形状,以适应不同的应用场景。本教程将深入探讨如何使用C++语言实现图像的几何变换,包括平移、旋转、镜像和...
图像几何变换是图像处理中的重要组成部分,主要用于改变图像的形状和位置。本文将重点讨论图像仿射变换、图像透视变换以及基于图像透视变换的图像校正,并进行总结。这些概念和方法在Python中通常借助OpenCV库来实现...
在IT领域,图像处理是一项重要的...总之,"C++实现图像几何变换"是一个涵盖计算机视觉基础知识、C++编程技巧和OpenCV库应用的综合性课题。通过这个项目,不仅可以掌握图像处理的核心技术,还能提升软件开发的实际能力。
在数字图像处理领域,几何变换是一种重要的技术,用于改变图像的空间布局或形状。这通常涉及到图像的平移、旋转、缩放、错切等操作。本资源提供的代码着重于图像校正,它可以帮助理解并实践这些概念。VS2008是Visual...
柱面投影是一种几何变换方法,它将图像上的每个像素映射到一个半径固定的圆柱面上。在传统的二维图像中,像素位置通常由(x, y)坐标表示,而在柱面投影中,这些像素会按照一定的规则重新定位。在OpenCV中,我们可以...
总结一下最近看的关于opencv图像几何变换的一些笔记. 这是原图: 1.平移 import cv2 import numpy as np img = cv2.imread(image0.jpg, 1) imgInfo = img.shape height = imgInfo[0] width = imgInfo[1] mode =...
"图像几何变换处理框架"是一个专门用于实现这些变换的软件框架,它提供了丰富的功能,包括图像增强、去噪、几何变换和形态学处理等核心模块。下面我们将深入探讨这些知识点。 首先,**图像增强**是提升图像质量的...
在计算机视觉和图像处理领域,图像几何变换是一种重要的技术,用于改变图像的形状、位置或大小,以适应不同的应用场景。这种变换通常涉及到坐标系统的转换,包括平移、旋转、缩放、剪切和投影等。在C++编程环境中,...
梯形变换是一种几何变换,通常用于纠正透视失真或调整图像的形状。例如,在全景图的拼接中,由于相机视角的不同,图像边缘会产生非平行的直线,这时就需要通过梯形变换来使它们平行。梯形变换通过定义一个源图像上的...
本程序是一个简易的图像编辑系统,使用vc++编写,程序实现了打开图像,保存图像,另存为,复制粘贴,灰度变换,几何变换,图像旋转,图像镜像,图像大小缩放,图像的平移等一些功能。程序思路清晰,非常适合初学者...
总结,这个压缩包提供了一个用C#实现的图像几何校正工具,包含了从图像读取、模型构建到坐标变换的完整流程,同时具备精度评估功能,对于学习和实践图像处理的C#开发者来说,是一个宝贵的资源。通过深入研究源码,...
在本实验中,我们主要探讨的是数字图像处理领域中的一个重要主题——几何变换与变形。这个实验是山东大学针对数字图像处理课程所设计的,旨在帮助学生深入理解和掌握图像处理的基本技术,尤其是通过C++编程语言和...