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

图像的几何变换

学习目标

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

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:缩放比例(不进行缩放)

结果展示

相关推荐
Elastic 中国社区官方博客11 分钟前
使用 Vertex AI Gemini 模型和 Elasticsearch Playground 快速创建 RAG 应用程序
大数据·人工智能·elasticsearch·搜索引擎·全文检索
说私域36 分钟前
地理定位营销与开源AI智能名片O2O商城小程序的融合与发展
人工智能·小程序
Q_w77421 小时前
计算机视觉小目标检测模型
人工智能·目标检测·计算机视觉
创意锦囊1 小时前
ChatGPT推出Canvas功能
人工智能·chatgpt
知来者逆1 小时前
V3D——从单一图像生成 3D 物体
人工智能·计算机视觉·3d·图像生成
碳苯2 小时前
【rCore OS 开源操作系统】Rust 枚举与模式匹配
开发语言·人工智能·后端·rust·操作系统·os
Java Fans2 小时前
计算机视觉算法知识详解(含代码示例)
计算机视觉
whaosoft-1432 小时前
51c视觉~CV~合集3
人工智能
网络研究院4 小时前
如何安全地大规模部署 GenAI 应用程序
网络·人工智能·安全·ai·部署·观点
凭栏落花侧4 小时前
决策树:简单易懂的预测模型
人工智能·算法·决策树·机器学习·信息可视化·数据挖掘·数据分析