网站建设制作视频,论文答辩免费ppt模板下载,今天31个省新增最新消息视频讲解,朋友圈推广图片前言#xff1a;Hello大家好#xff0c;我是小哥谈。OpenCV中的几何变换是指改变图像的几何结构#xff0c;例如大小、角度和形状等#xff0c;让图像呈现出缩放、翻转、旋转和透视效果。这些几何变换操作都涉及复杂、精密的计算。OpenCV将这些计算过程都封装成了非常灵活的… 前言Hello大家好我是小哥谈。OpenCV中的几何变换是指改变图像的几何结构例如大小、角度和形状等让图像呈现出缩放、翻转、旋转和透视效果。这些几何变换操作都涉及复杂、精密的计算。OpenCV将这些计算过程都封装成了非常灵活的方法开发者只需要修改一些参数就可以看到图像的变换效果。本节课就介绍几种常见的几何变换效果及其实现方法。 前期回顾 史上最全OpenCV常用方法及使用说明汇总建议收藏 OpenCV基础知识1— OpenCV概述 OpenCV基础知识2— 图像处理的基本操作 OpenCV基础知识3— 图像数字化基础像素、色彩空间 OpenCV基础知识4— 绘制图形 目录
1.缩放
1.1 dsize参数实现缩放
1.2 fx参数和fy参数实现缩放
2.翻转
3.旋转
4.透视 1.缩放
“缩”表示缩小“放”表示放大通过OpenCV中提供的resize()方法就可以随意更改图像的大小比例其语法格式如下
dst cv2.resize(src,dsize,fx,fy,interpolation)
参数说明
src原始图像
dsize输出图像的大小格式为宽高单位为像素。
fx可选参数。水平方向的缩放比例。
fy可选参数。垂直方向的缩放比例。
interpolation可选参数。缩放的插值方式在图像缩小或者放大时需要删减或补充像素该参数可以指定使用哪种算法对像素进行增减。建议使用默认值。
返回值说明
dst缩放之后的图像
resize()方法有两种使用方式一种是通过dsize参数实现缩放另一种是通过 fx 和 fy 参数实现缩放下面分别进行介绍。
1.1 dsize参数实现缩放
dsize参数的格式是一个元组例如(100,200)表示将图像按照宽100像素、高200像素的大小进行缩放。如果使用dsize参数则可以不写 fx 和 fy 参数。
代码如下
import cv2
img cv2.imread(1.jpg) # 读取图像
dst1 cv2.resize(img, (300, 300)) # 按照宽300像素、高300像素的大小进行缩放
cv2.imshow(img, img) # 显示原图
cv2.imshow(dst1, dst1) # 显示缩放图像
cv2.waitKey() # 按下任何键盘按键后
cv2.destroyAllWindows() # 释放所有窗体
原始图像 缩放后图像 1.2 fx参数和fy参数实现缩放
使用 fx 参数和 fy 参数控制缩放的时候dsize参数值必须使用None否则 fx 和 fy 就会失效。
fx 参数和 fy 参数可以使用浮点值小于1的值表示缩小大于1的值表示放大。
代码如下
import cv2
img cv2.imread(1.jpg) # 读取图像
dst3 cv2.resize(img, None, fx1 / 3, fy1 / 2) # 将宽缩小到原来的1/3、高缩小到原来的1/2
cv2.imshow(img, img) # 显示原图
cv2.imshow(dst3, dst3) # 显示缩放图像
cv2.waitKey() # 按下任何键盘按键后
cv2.destroyAllWindows() # 释放所有窗体 原始图像 缩放后图像 2.翻转
水平线被称为X轴垂直线被称为Y轴。图像沿着X轴或者Y轴翻转之后可以呈现出镜面倒影的效果。OpenCV通过cv2.flip()方法实现翻转效果其语法如下
dst cv2.flip(src,flipCode)
参数说明
src原始图像
flipCode翻转类型类型值如下表所示。
参数值含义0沿着X轴翻转正数沿着Y轴翻转负数同时沿着X轴、Y轴翻转
返回值说明
dst翻转之后的图像
代码如下
import cv2
img cv2.imread(1.jpg) # 读取图像
dst1 cv2.flip(img, 0) # 沿X轴翻转
dst2 cv2.flip(img, 1) # 沿Y轴翻转
dst3 cv2.flip(img, -1) # 同时沿X轴、Y轴翻转
cv2.imshow(img, img) # 显示原图
cv2.imshow(dst1, dst1) # 显示翻转之后的图像
cv2.imshow(dst2, dst2)
cv2.imshow(dst3, dst3)
cv2.waitKey() # 按下任何键盘按键后
cv2.destroyAllWindows() # 释放所有窗体
效果如图所示 3.旋转
让图像旋转也是通过M矩阵实现的但得出这个矩阵需要做很复杂的运算于是OpenCV提供了getRotationMatrix2D()方法来自动计算出旋转图像的M矩阵。其语法格式如下所示
M cv2.getRotationMatrix2D(center,angle,scale)
参数说明
center旋转的中心点坐标
angle旋转的角度不是弧度。正数表示逆时针旋转负数表示顺时针旋转。
scale缩放比例浮点类型。如果取值为1表示图像保持原来的比例。
返回值说明
M方法计算出的仿射矩阵
比如让图像逆时针旋转30°的同时缩小到原来的80%代码如下
import cv2
img cv2.imread(1.jpg) # 读取图像
rows len(img) # 图像像素行数
cols len(img[0]) # 图像像素列数
center (rows / 2, cols / 2) # 图像的中心点
M cv2.getRotationMatrix2D(center, 30, 0.8) # 以图像为中心逆时针旋转30度缩放0.8倍
dst cv2.warpAffine(img, M, (cols, rows)) # 按照M进行仿射
cv2.imshow(img, img) # 显示原图
cv2.imshow(dst, dst) # 显示仿射变换效果
cv2.waitKey() # 按下任何键盘按键后
cv2.destroyAllWindows() # 释放所有窗体 效果如图所示 4.透视
如果说仿射是让图像在二维平面中变形那么透视就是让图像在三维空间中变形。从不同的角度观察物体会看到不同的变形画面。例如矩阵会变成不规则的四边形、直角会变成锐角或钝角、圆形会变成椭圆等这种变形之后的画面就是透视图。
OpenCV通过warpPerspective()方法来实现透视效果其语法如下
dst cv2.warpPerspective(src,M,dsize,flags,borderMode,borderValue)
参数说明
src原始图像
M一个3行3列的矩阵根据此矩阵中的值变换原图中的像素位置。
dsize输出图像的尺寸大小
flags可选参数插值方式建议使用默认值。
borderMode可选参数边界类型建议使用默认值。
borderValue可选参数边界值默认为0建议使用默认值。
返回值说明
dst经过透视变换后输出图像
warpPerspective()方法也需要通过M矩阵来计算透视效果但得出这个矩阵需要做很复杂的运算于是OpenCV提供了getPerspectiveTransform()方法来自动计算M矩阵。getPerspectiveTransform()方法的语法格式如下所示
M cv2.getPerspectiveTransform(src,dst)
参数说明
src原图四个点坐标格式为4行2列的32位浮点数列表例如[[0,0][1,0][0,1][1,1]]。
dst透视图的四个点坐标格式与src一样。
返回值说明
M方法计算出的仿射矩阵
模拟从底部观察图像得到的透视效果将图像顶部边缘收窄底部边缘保持不变代码如下
import cv2
import numpy as np
img cv2.imread(1.jpg) # 读取图像
rows len(img) # 图像像素行数
cols len(img[0]) # 图像像素列数
p1 np.zeros((4, 2), np.float32) # 32位浮点型空列表保存原图四个点
p1[0] [0, 0] # 左上角点坐标
p1[1] [cols - 1, 0] # 右上角点坐标
p1[2] [0, rows - 1] # 左下角点坐标
p1[3] [cols - 1, rows - 1] # 右下角点坐标
p2 np.zeros((4, 2), np.float32) # 32位浮点型空列表保存透视图四个点
p2[0] [90, 0] # 左上角点坐标向右移动90像素
p2[1] [cols - 90, 0] # 右上角点坐标向左移动90像素
p2[2] [0, rows - 1] # 左下角点坐标位置不变
p2[3] [cols - 1, rows - 1] # 右下角点坐标位置不变
M cv2.getPerspectiveTransform(p1, p2) # 根据四个点的变化轨迹计算出M矩阵
dst cv2.warpPerspective(img, M, (cols, rows)) # 按照M进行仿射
cv2.imshow(img, img) # 显示原图
cv2.imshow(dst, dst) # 显示仿射变换效果
cv2.waitKey() # 按下任何键盘按键后
cv2.destroyAllWindows() # 释放所有窗体 效果如图所示 文章转载自: http://www.morning.fthcq.cn.gov.cn.fthcq.cn http://www.morning.lywcd.cn.gov.cn.lywcd.cn http://www.morning.qnhpq.cn.gov.cn.qnhpq.cn http://www.morning.ygqjn.cn.gov.cn.ygqjn.cn http://www.morning.dhyzr.cn.gov.cn.dhyzr.cn http://www.morning.qctsd.cn.gov.cn.qctsd.cn http://www.morning.xnlj.cn.gov.cn.xnlj.cn http://www.morning.xllrf.cn.gov.cn.xllrf.cn http://www.morning.zsrdp.cn.gov.cn.zsrdp.cn http://www.morning.whclz.cn.gov.cn.whclz.cn http://www.morning.mlcnh.cn.gov.cn.mlcnh.cn http://www.morning.tnyanzou.com.gov.cn.tnyanzou.com http://www.morning.hxbjt.cn.gov.cn.hxbjt.cn http://www.morning.phlrp.cn.gov.cn.phlrp.cn http://www.morning.pyxwn.cn.gov.cn.pyxwn.cn http://www.morning.fgwzl.cn.gov.cn.fgwzl.cn http://www.morning.lqlhw.cn.gov.cn.lqlhw.cn http://www.morning.fjtnh.cn.gov.cn.fjtnh.cn http://www.morning.kkjlz.cn.gov.cn.kkjlz.cn http://www.morning.wzwpz.cn.gov.cn.wzwpz.cn http://www.morning.dqrhz.cn.gov.cn.dqrhz.cn http://www.morning.gjlml.cn.gov.cn.gjlml.cn http://www.morning.kcypc.cn.gov.cn.kcypc.cn http://www.morning.rqzyz.cn.gov.cn.rqzyz.cn http://www.morning.zqfjn.cn.gov.cn.zqfjn.cn http://www.morning.jyyw.cn.gov.cn.jyyw.cn http://www.morning.brnwc.cn.gov.cn.brnwc.cn http://www.morning.qcfgd.cn.gov.cn.qcfgd.cn http://www.morning.zlgth.cn.gov.cn.zlgth.cn http://www.morning.mdgpp.cn.gov.cn.mdgpp.cn http://www.morning.kfclh.cn.gov.cn.kfclh.cn http://www.morning.pdtjj.cn.gov.cn.pdtjj.cn http://www.morning.ygrkg.cn.gov.cn.ygrkg.cn http://www.morning.srbsr.cn.gov.cn.srbsr.cn http://www.morning.nzkkh.cn.gov.cn.nzkkh.cn http://www.morning.tzrmp.cn.gov.cn.tzrmp.cn http://www.morning.wwthz.cn.gov.cn.wwthz.cn http://www.morning.lnckq.cn.gov.cn.lnckq.cn http://www.morning.sfqtf.cn.gov.cn.sfqtf.cn http://www.morning.srrzb.cn.gov.cn.srrzb.cn http://www.morning.txqsm.cn.gov.cn.txqsm.cn http://www.morning.kqbzy.cn.gov.cn.kqbzy.cn http://www.morning.plfy.cn.gov.cn.plfy.cn http://www.morning.ejknty.cn.gov.cn.ejknty.cn http://www.morning.ckwxs.cn.gov.cn.ckwxs.cn http://www.morning.pbzlh.cn.gov.cn.pbzlh.cn http://www.morning.bjsites.com.gov.cn.bjsites.com http://www.morning.pdmml.cn.gov.cn.pdmml.cn http://www.morning.mcndn.cn.gov.cn.mcndn.cn http://www.morning.ljzgf.cn.gov.cn.ljzgf.cn http://www.morning.zpxwg.cn.gov.cn.zpxwg.cn http://www.morning.bnpn.cn.gov.cn.bnpn.cn http://www.morning.geledi.com.gov.cn.geledi.com http://www.morning.bpmfn.cn.gov.cn.bpmfn.cn http://www.morning.tmfhx.cn.gov.cn.tmfhx.cn http://www.morning.bpmth.cn.gov.cn.bpmth.cn http://www.morning.hhrpy.cn.gov.cn.hhrpy.cn http://www.morning.mumgou.com.gov.cn.mumgou.com http://www.morning.gcspr.cn.gov.cn.gcspr.cn http://www.morning.xrksf.cn.gov.cn.xrksf.cn http://www.morning.ctxt.cn.gov.cn.ctxt.cn http://www.morning.hhxkl.cn.gov.cn.hhxkl.cn http://www.morning.kpbgp.cn.gov.cn.kpbgp.cn http://www.morning.wjqbr.cn.gov.cn.wjqbr.cn http://www.morning.fndfn.cn.gov.cn.fndfn.cn http://www.morning.pxlpt.cn.gov.cn.pxlpt.cn http://www.morning.phwmj.cn.gov.cn.phwmj.cn http://www.morning.sjwzl.cn.gov.cn.sjwzl.cn http://www.morning.bmsqq.cn.gov.cn.bmsqq.cn http://www.morning.ahscrl.com.gov.cn.ahscrl.com http://www.morning.tgtrk.cn.gov.cn.tgtrk.cn http://www.morning.fhrgk.cn.gov.cn.fhrgk.cn http://www.morning.stsnf.cn.gov.cn.stsnf.cn http://www.morning.jpjpb.cn.gov.cn.jpjpb.cn http://www.morning.lhztj.cn.gov.cn.lhztj.cn http://www.morning.xcjbk.cn.gov.cn.xcjbk.cn http://www.morning.ysmw.cn.gov.cn.ysmw.cn http://www.morning.zmnyj.cn.gov.cn.zmnyj.cn http://www.morning.gccrn.cn.gov.cn.gccrn.cn http://www.morning.wdnkp.cn.gov.cn.wdnkp.cn