OpenCV图像的几何变换处理方法详解
创作时间:
作者:
@小白创作中心
OpenCV图像的几何变换处理方法详解
引用
1
来源
1.
http://www.jb51.net/python/317487cfe.htm
OpenCV是一个强大的计算机视觉库,广泛应用于图像处理和分析领域。本文将详细介绍OpenCV中常见的图像几何变换处理方法,包括图像缩放、平移、旋转、仿射变换、透射变换和图像金字塔等操作。通过本文的学习,读者将能够掌握这些基本的图像处理技能。
一、图像缩放
1.API
cv2.resize(src, dsize, fx=0,fy=0,interpolation = cv2.INTER_LINEAR)
参数:
①src :输入图像
②dsize:绝对尺寸
③fx,fy:相对尺寸
④interpolation:插值方法
2.代码演示
import cv2 as cv
import numpy as np
import matplotlib.pyplot as plt
img = cv.imread('Genshin.jpeg', -1)
cv.imshow('image', img)
[rows, cols] = img.shape[:2]
res_1 = cv.resize(img, (2*cols, 2*rows), interpolation=cv.INTER_CUBIC)
cv.imshow('image', res_1)
cv.waitKey()
res_2 = cv.resize(img, None, fx=0.5, fy=0.5)
cv.imshow('image', res_1)
cv.waitKey()
二、图像平移
1.API
cv2.warpAffine(img, M, dsize)
参数:
①img:输入图像
②M:2×3移动矩阵,为np.float32类型
③dsize:输出图像的大小
2.代码演示
import cv2 as cv
import numpy as np
import matplotlib.pyplot as plt
img = cv.imread('Genshin.jpeg', -1)
cv.imshow('image', img)
[rows, cols] = img.shape[:2]
M = np.float32([[1, 0, 100], [0, 1, 50]])
dst = cv.warpAffine(img, M, (cols, rows))
cv.imshow('image', dst)
cv.waitKey()
三、图像旋转
1.API
cv2.getRotationMatrix2D(center, angle, scale)
cv.warpAffine()
参数:
①center:旋转中心
②angle:旋转角度
③scale:缩放比例
返回值:
M:旋转矩阵
2.代码演示
import cv2 as cv
import numpy as np
import matplotlib.pyplot as plt
img = cv.imread('Genshin.jpeg', -1)
cv.imshow('image', img)
[rows, cols] = img.shape[:2]
M = cv.getRotationMatrix2D((cols/2, rows/2), 120, 1)
dst = cv.warpAffine(img, M, (cols, rows))
cv.imshow('image', dst)
cv.waitKey()
四、仿射变换
1.API
cv2.getAffineTransform()
cv2.warpAffine()
2.代码演示
import cv2 as cv
import numpy as np
import matplotlib.pyplot as plt
img = cv.imread('Genshin.jpeg', -1)
cv.imshow('image', img)
[rows, cols] = img.shape[:2]
pts1 = np.float32([[50, 50], [200, 50], [50, 200]])
pts2 = np.float32([[100, 100], [200, 50], [100, 250]])
M = cv.getAffineTransform(pts1, pts2)
dst = cv.warpAffine(img, M, (cols, rows))
cv.imshow('image', dst)
cv.waitKey()
五、透射变换
1.API
cv2.getPerspectiveTransform()
cv2.warpPerspective()
2.代码演示
import cv2 as cv
import numpy as np
import matplotlib.pyplot as plt
img = cv.imread('Genshin.jpeg', -1)
cv.imshow('image', img)
img = cv.resize(img, None, fx=0.5, fy=0.5)
[rows, cols] = img.shape[:2]
pts1 = np.float32([[56, 65], [368, 52], [28, 138], [389, 390]])
pts2 = np.float32([[100, 145], [300, 100], [80, 290], [310, 300]])
T = cv.getPerspectiveTransform(pts1, pts2)
dst = cv.warpPerspective(img, T, (cols, rows))
cv.imshow('image', dst)
cv.waitKey()
六、图像金字塔
1.API
cv2.pyrUp(img) #对图像进行上采样
cv2.pyrDown(img) #对图像进行下采样
2.代码演示
import cv2 as cv
import numpy as np
import matplotlib.pyplot as plt
img = cv.imread('Genshin.jpeg', -1)
cv.imshow('image', img)
img = cv.pyrDown(img)
img = cv.pyrDown(img)
img = cv.pyrDown(img)
cv.imshow('image', img)
cv.waitKey()
热门推荐
丫鬟名字的艺术与文化,历史深处的诗意符号
智能照明控制系统模块的原理与功能详解
创业成败之谜:关键因素的探寻
S7-1200PLC控制V90伺服通过FB284实现位置控制的方法
汽车碰撞测试知多少,NHTSA/IIHS测试标准详解
8大主流自媒体平台优缺点及运营建议
澳洲硕士商业与管理专业详解:课程设置、就业前景与推荐院校
没有学历怎样移民欧洲?解读低学历移民的五大途径
“00后”逆袭家政圈背后:58到家用“技术+技能”为家政人保驾护航
中国月球基地:从梦想到现实,2030年前我们能登月吗?
车管小课堂 | 驾考有疑惑?快来速通预约考试攻略!
氨气安全培训
QQ密码怎么看?五个简单方法轻松找回遗忘密码
秦始皇的创新:建立了上朝制度
离职演讲稿的写作方法与写作技巧
阅创大会 | 影视、动漫、短剧……网文IP是如何改编的
老年人再婚对方子女有继承权吗
服务器管理维护究竟涉及哪些关键任务和操作?
普通话水平测试备考指南
手怎么锻炼才有力:打造强健手部力量的科学方法
床头柜味道大怎么去除?居家除味妙招大揭秘
白内障是怎样形成的原因
锂电池回收处理设备:市场前景广阔,机遇与挑战并存
揭秘多层PCB打样:为什么压合工艺至关重要?
信用卡和贷款,傻傻分不清楚?一篇帮你全搞懂!
秦皇岛山海关旅游攻略,穿越历史的长廊,探寻天下第一关
女性腹部彩超检查什么
烟雨江湖新建角色选项攻略:从创建到45级全攻略
善用名言,让你的演讲简报说服力大提升
糖尿病患者能喝小米粥吗?丨贤医健康说