图像的几何变换(缩放、平移、旋转)

图像的几何变换

学习目标

  • 掌握图像的缩放、平移、旋转等
  • 了解数字图像的仿射变换和透射变换

1 图像的缩放

缩放是对图像的大小进行调整,即 使图像放大或缩小

cv2.resize(src,dsize,fx=0,fy=0,interpolation=cv2.INTER_LINEAR)

参数:

  • src :输入图像
  • dsize ;绝对尺寸 ,直接指定调整后图像的大小
  • fx,fy :相对尺寸,将dsize设置为None,然后将fx和fy设置为比例因子即可
  • interpolation: 插值方法

代码实现

python 复制代码
import cv2 as cv
#读取图片

img1 = cv.imread('lena.png')

#图像的缩放

#法1    :绝对尺寸

rows, cols = img1.shape[:2]
res  = cv.resize(img1 , (2*cols,2*rows),interpolation=cv.INTER_CUBIC)

#法二  :相对尺寸
res1 = cv.resize(img1,None,fx=0.5,fy=0.5)

#图像显示
cv.imshow("original",img1)
cv.imshow("enlarge",res)
cv.imshow("shrink",res1)
cv.waitKey(0)

结果展示

2图像的平移

代码实现

python 复制代码
import numpy as np
import cv2 as cv
import matplotlib.pyplot as plt

from pylab import mpl
mpl.rcParams['font.sans-serif'] = ['SimHei']

#读取图像
img1 = cv.imread("lena.png")

#图像的平移
rows ,cols = img1.shape[:2]
M= np.float32([[1,0,100],[0,1,50]])   #平移矩阵
dst = cv.warpAffine(img1,M,(cols,rows))

#图像的显示
fig,axes = plt.subplots(nrows=1,ncols=2,figsize=(7,4),dpi=100)
axes[0].imshow(img1[:,:,::-1])
axes[0].set_title("原图")

axes[1].imshow(dst[:,:,::-1])
axes[1].set_title("平移后的结果")
plt.show()

结果展示

3 图像的旋转






代码实现

python 复制代码
import numpy as np
import cv2 as cv
import matplotlib.pyplot as plt

from pylab import mpl
mpl.rcParams['font.sans-serif'] = ['SimHei']


#读取图像
img = cv.imread("lena.png")

#旋转图像

rows ,cols = img.shape[:2]
#生成旋转矩阵
M = cv.getRotationMatrix2D((cols/2 ,rows/2),90,1)
#进行旋转变换
dst = cv.warpAffine(img,M,(cols,rows))


#图像展示
fig ,axes = plt.subplots(nrows=1,ncols=2,figsize=(5,4),dpi=100)
axes[0].imshow(img[:,:,::-1])
axes[0].set_title("原图")

axes[1].imshow(dst[:,:,::-1])
axes[1].set_title("旋转后的结果")

plt.show()

M = cv.getRotationMatrix2D((cols/2 ,rows/2),90,1)

  • cols/2 ,rows/2 :旋转中心
  • 90 : 逆时针旋转角度
  • 1:缩放比例(不进行缩放)

结果展示

相关推荐
moonsims1 分钟前
基于AiBrainBox-UGV的Smart RoBot系统架构&多Smart Robot协同架构:数据流 + 多机协同架构图
人工智能·数码相机·无人机
测试那点事儿2 分钟前
Cursor AI技能提示词设计建议:构建全覆盖测试用例生成体系(测试用例设计场景安全性能篇)
人工智能·安全·测试用例·ai辅助测试
果汁华2 分钟前
CLI 工具深度解析系列
人工智能
波动几何2 分钟前
通用内容构成方法论技能compose-methods示例智能硬件方案
人工智能
阿拉斯攀登3 分钟前
20 个 Android JNI + CMake 生产级示例
android·java·开发语言·人工智能·机器学习·无人售货柜
xixixi777773 分钟前
AI驱动安全变革:Axios零交互劫持云元数据+CVE-2026-40175,Claude Mythos加速至小时级,攻防不对称重构安全架构
人工智能·5g·ai·claude·攻击·多模态·安全架构
MRDONG14 分钟前
从 Prompt 到智能体系统:Function Calling、Memory 与 Synthetic RAG 的全栈解析
人工智能·深度学习·神经网络·语言模型·自然语言处理·prompt
Deepoch5 分钟前
基于 VLA 边缘计算的除草机器人自主作业技术研究
人工智能·开发板·具身模型·deepoc·除草机器人
ws2019078 分钟前
智行未来,驱动变革:AUTO TECH China 2026 广州汽车技术展蓄势待发
人工智能·科技·汽车
小超同学你好9 分钟前
OpenClaw 深度解析与源代码导读 · 第2篇:Skills——能力扩展平面与源码中的「目录即技能」
人工智能·语言模型