使用OpenCV实现图像平移

使用OpenCV实现图像平移

程序流程

  1. 读取图像并获取其高度、宽度和通道数。
  2. 定义平移量tx和ty,并创建平移矩阵M。
  3. 使用cv2.warpAffine函数对图像进行仿射变换(平移),得到平移后的图像。
  4. 显示平移后的图像。
  5. 等待用户按键并关闭显示窗口。
  6. 保存平移后的图像到文件。

效果

原图:

平移后的图:

代码

python 复制代码
import cv2
import numpy as np

# 读取图像
img = cv2.imread('liu_1.jpeg')

# 获取图像的高度和宽度
rows, cols, ch = img.shape

# 定义平移矩阵,tx和ty是x和y方向的平移量
# 这里我们假设tx=100, ty=50
tx = 100
ty = 50

# 创建平移矩阵 M,这里我们使用了numpy的float32类型
# 注意OpenCV的warpAffine函数需要这个数据类型
M = np.float32([[1, 0, tx], [0, 1, ty]])

# 进行仿射变换,使用线性插值(INTER_LINEAR)
# 注意这里dsize参数指定了输出图像的大小,这里我们简单地使用原图像的大小
# 如果你想让图像在平移后填充一些空白区域,你需要调整这个参数
translated = cv2.warpAffine(img, M, (cols, rows))

# 显示平移后的图像
cv2.imshow('Translated Image', translated)

# 等待按键并关闭窗口
cv2.waitKey(0)
cv2.destroyAllWindows()

# 如果你还想保存平移后的图像
cv2.imwrite('translated.jpg', translated)
相关推荐
QYR_11几秒前
2026-2032年耳轴夹具行业洞察:核心应用驱动下的市场增长路径
人工智能
硅谷秋水6 分钟前
一个务实的VLA基础模型
人工智能·深度学习·机器学习·计算机视觉·语言模型·机器人
wangqiaowq6 分钟前
Modbus TCP/RTU、OPC UA 和 MQTT 是工业自动化和物联网(IoT)领域中常用的通信协议
人工智能
大模型任我行7 分钟前
阿里:LLM结构化数学推理评测基准
人工智能·语言模型·自然语言处理·论文笔记
进击ing小白13 分钟前
OpenCv之图像颜色空间介绍
人工智能·opencv·计算机视觉
lauo19 分钟前
【智体OS】ibbot智体机灵 V1.0:你的手机AI超脑,一句话开启智体时代————终将打败OpenClaw的国产开源项目
人工智能·智能手机
OPEN-Source19 分钟前
给 Agent 安装技能:工具抽象、自动选工具与安全边界
人工智能·python·agent·rag·deepseek
量化炼金 (CodeAlchemy)21 分钟前
【交易策略】低通滤波器策略:在小时图上捕捉中期动量
大数据·人工智能·机器学习·区块链
智算菩萨27 分钟前
上下文学习的贝叶斯推断视角:隐式梯度下降还是隐式贝叶斯?
人工智能·算法
看-是灰机32 分钟前
openclaw
人工智能