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()
热门推荐
青州古城:千年古城的历史密码
如何通过饮食和运动降低谷丙转氨酶?
从西安到壶口瀑布:一场穿越三秦大地的自驾之旅
北海老街:中西合璧建筑群,周边海岛美食全攻略
12种有氧运动任你选,每周150分钟助你提升健康
鲁迅真名周树人,笔名背后的文化密码
阿奇霉素 vs 莫西沙星:谁更适合孕妇?
南京桂花鸭:从传统名菜到产业化发展
个税APP升级!子女教育扣除提至2000元,8步完成申报
阜外医院专家详解:心律失常的判断与治疗
TRIZ第22原理:设计具有自我维护能力的可持续产品
山药红枣南瓜大作战,谁才是养生王者?
世界最大瀑布群就在贵州:黄果树等七大瀑布夏季观赏指南
被中年阿姨这8个清洁智慧惊呆了,家里难打扫的地方,分分钟搞定
张家界旅游必去六景:三千奇峰到古镇夜色
在你来我往中获得更大发展——从2024旅交会看旅游经济蓬勃向上
专项突破+大量练习:高中生快速提升成绩的实用指南
丑时:古时的深夜与现代的交汇
破解异地恋信任危机:六大实用建议助你重建情感桥梁
朋友持久相处的十条秘诀
职业规划五步法:从自我评估到行动实施的完整指南
华为手机用户必看:微信转账延迟功能这样设置最安全
车品牌系列之60:全球十大豪车品牌第4名,帕加尼品牌背后的故事
森林、养老、气候、海浴:四大冬季康养胜地全解析
《顶尖科学》开播:对话全球顶尖科学家,探索未来科技前沿
中国居民膳食指南教你健康饮食
“他莫昔芬之父”乔登逝世,其研究改变乳腺癌治疗格局
一叶知秋:古诗词中落叶的情感寄托与文化意蕴
从做一件小事开始健康小兵立大功
不小心肝病了,该怎么办?