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()
热门推荐
推动经济复苏的方式,不是挤出居民储蓄,也非增加居民负债
中国漆文化的历史渊源与传承之路探析
长假安全小锦囊丨国庆假期安全用电攻略已为您准备好了!
怀孕期间应该如何调整饮食结构?
疫情对股票市场的影响分析:突发事件对投资的影响
国际职业教育评估新探索:PISA VET项目详解
抗炎饮食:科学证实的健康饮食新选择
心灵的觉醒:如何实现个人成长与自我超越
日语高考丨备考重点语法总结
真假痤疮:容易被误诊的那些烦人痘痘,你中招了吗?
JAHA:充足的睡眠或能明显降低青少年群体高血压的发病风险
主任解读 | 备孕及孕产期妇女叶酸补充指南,一文全部掌握
虾肉打成泥做什么好吃
中国的饮酒文化:商业人士必读指南
优雅女性的穿衣法则:从气质到风格的全解析
天水:守护历史文化瑰宝,传承千年文明薪火
汽车轮胎更换全指南
湖南耒水铊污染:含剧毒金属的违规排放与监管
“九子夺嫡”大戏上演
不同预算下的徒步鞋推荐及选购指南
电脑软件购买退款权解析,关键因素全揭秘
美国撤销高通、英特尔对华为出口许可,声称担心这两家公司跟中国关系过于密切
理解和测量血压的终极指南
川青铁路:一条与生态同行的高原“天路”
中国农科院推出农业智能知识服务平台,助力数字农业转型
如何创建内容简报:从定义到实战指南
手皮肤癣的治疗方案:从药物到生活护理的全方位指南
小米汽车改变新能源汽车市场传播模式?2月销量与价值传播指数大揭秘
赛罗奥特曼传奇版:宇宙守护者的永恒征程
#过年要有仪式感#,到底什么是仪式感?