使用OpenCV实现图像平移

devtools/2024/9/19 13:01:45/ 标签: opencv, 人工智能, 计算机视觉

使用OpenCV实现图像平移

  • 程序流程
  • 效果
  • 代码

程序流程

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

效果

原图:
在这里插入图片描述
平移后的图:
在这里插入图片描述

代码

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)

http://www.ppmy.cn/devtools/32922.html

相关文章

智慧文旅开启沉浸式文化体验,科技让旅行更生动:借助智慧技术,打造沉浸式文化体验场景,让旅行者在旅行中深度感受文化的魅力

一、引言 随着科技的飞速发展,传统旅游行业正经历着前所未有的变革。智慧文旅,作为一种新兴的旅游模式,正以其独特的魅力,吸引着越来越多的旅行者。智慧文旅不仅改变了人们的旅行方式,更在深度上丰富了人们的文化体验…

QT, 查看局域网内在线主机的mac地址

如题, QProcess 通过 调用 windows 系统 arp.exe 并解析其获取的数据,得到其mac地址,关键代码如下(从项目中摘取,放心使用): //arp for mac;m_process->start("c:/windows/system32/arp.exe -a "ipAddre…

【网络安全产品】---应用防火墙(WAF)

what Web应用防火墙(Web Application Firewall) WAF可对网站或者App的业务流量进行恶意特征识别及防护,在对流量清洗和过滤后,将正常、安全的流量返回给服务器,避免网站服务器被恶意入侵导致性能异常等问题,从而保障…

【webrtc】RemoteAudioSource的创建线程

m98 代码&#xff1a;I:\webrtc m98_yjf\src\pc\rtp_transmission_manager.cc RtpTransmissionManager::CreateReceiver 在信令线程创建receiver receiver 是&#xff1a; rtc::scoped_refptr<RtpReceiverProxyWithInternal<RtpReceiverInternal>>receiver;其实际…

音视频开发之旅——实现录音器、音频格式转换器和播放器(PCM文件转换为WAV文件、使用LAME编码MP3文件)(Android)

本文主要讲解的是实现录音器、音频转换器和播放器&#xff0c;在实现过程中需要把PCM文件转换为WAV文件&#xff0c;同时需要使用上一篇文章交叉编译出来的LAME库编码MP3文件。本文基于Android平台&#xff0c;示例代码如下所示&#xff1a; AndroidAudioDemo Android系列&am…

GDPU unity游戏开发 碰撞器与触发器

砰砰叫&#xff0c;谁动了她的奶酪让你的小鹿乱撞了。基于此&#xff0c;亦即碰撞与触发的过程。 碰撞器与触发器的区别 通俗点讲&#xff0c;碰撞器检测碰撞&#xff0c;触发器检测触发&#xff0c;讲了跟没讲似的。碰撞器是用来检测碰撞事件的&#xff0c;在unity中&#xff…

使用Pytorch中的torchtext加载和预处理文本分类任务的数据集

文章目录 1. torchtext版本&#xff1a;0.15.02. 导入库和模块&#xff1a;3. 定义分词器&#xff1a;3.1 一个简单的示例来进一步说明 get_tokenizer 函数的使用 4. 下载并加载数据集5. 定义词汇表并构建5.1 map() 函数一个简单的map() 函数的例子 5.2 torchtext.vocab.build_…

浅谈ps/2键盘

文章目录 说明基础知识操作系统中断类型工作机制优点应用 CPU对IO设备的轮询机制轮询机制的工作原理轮询机制的特点轮询机制的优、缺点与中断机制的对比 N-Key Roller&#xff08;全键无冲&#xff09;应用领域实现原理技术限制 PS/2接口简介USB设备&PS/2设备的工作机制PS/…

【强训笔记】day8

NO.3 思路&#xff1a;相乘除以最大公约数等于最小公倍数。最小公倍数等于gcd&#xff08;a&#xff0c;a%b&#xff09;递归直到b等于0。 代码实现&#xff1a; #include <iostream> using namespace std;int gcd(int a,int b) {if(b0) return a;return gcd(b,a%b); }…

深入学习Redis(1):Redis内存模型

Redis的五个对象类型 字符串&#xff0c;哈希&#xff0c;列表&#xff0c;集合&#xff0c;有序集合 本节有关redis的内存模型 1.估算redis的内存使用情况 目前内存的价格比较的高&#xff0c;如果对于redis的内存使用情况能够进行计算&#xff0c;就可以选用合适的设备进…

组合总和2(力扣40)

解题思路&#xff1a;因为这里不能有重复的组合&#xff0c;所以采取用下表used来判断其是否在前面出现过&#xff0c;如果出现过就直接跳过&#xff0c;同时判断是树层重复还是树枝重复&#xff0c;如果是树枝重复就不用跳过 具体代码如下&#xff1a; class Solution { pu…

Leetcode—1056. 易混淆数【简单】Plus

2024每日刷题&#xff08;126&#xff09; Leetcode—1056. 易混淆数 &#x1f4a9;山实现代码 class Solution { public:bool confusingNumber(int n) {int arr[10] {0};int notNum 0;int arr2[12] {0};int size 0;while(n) {int x n % 10;arr[x] 1;arr2[size] x;if(…

【一刷《剑指Offer》】面试题 12:打印 1 到最大的 n 位数

力扣对应题目链接&#xff1a;LCR 135. 报数 - 力扣&#xff08;LeetCode&#xff09; 牛客对应题目链接&#xff1a;打印从1到最大的n位数_牛客题霸_牛客网 (nowcoder.com) 一、《剑指Offer》内容 二、分析题目 1、暴力解法 2、用字符串模拟数字加法 首先要考虑当 n 很大时&…

IoTDB 入门教程 基础篇⑦——数据库管理工具 | DBeaver 连接 IoTDB

文章目录 一、前文二、下载iotdb-jdbc三、安装DBeaver3.1 DBeaver 下载3.2 DBeaver 安装 四、安装驱动五、连接数据库六、参考 一、前文 IoTDB入门教程——导读 二、下载iotdb-jdbc 下载地址org/apache/iotdb/iotdb-jdbc&#xff1a;https://maven.proxy.ustclug.org/maven2/o…

【数学建模】矩阵微分方程

一、说明 我相信你们中的许多人都熟悉微分方程&#xff0c;或者至少知道它们。微分方程是数学中最重要的概念之一&#xff0c;也许最著名的微分方程是布莱克-斯科尔斯方程&#xff0c;它控制着任何股票价格。 ​​ 股票价格的布莱克-斯科尔斯模型 微分方程可以由数学中的许多…

MyBatisPlus @TableLogic实现全局自动逻辑删除

一、背景 有一天&#xff0c;小王在编写代码时实现了一个删除操作&#xff0c;但由于测试场景覆盖不全&#xff0c;上线后不慎删除了系统中的部分业务数据。幸运的是&#xff0c;系统已经开启了binlog日志功能&#xff0c;使得我们能够根据日志来恢复这些误删的数据。这一事故…

关于测试用例

目录 一 测试用例介绍 二 写用例的好处 三 不适合写用例的情况 一 测试用例介绍 测试用例由测试来写&#xff0c;编写时间在需求评审和设计评审&#xff08;如有&#xff09;结束后&#xff0c;需求提测前&#xff0c;用例依赖需求文档来编写。一般包含用例标题&#xff0c…

算法提高之二维费用的背包问题

算法提高之二维费用的背包问题 核心思想&#xff1a;二维01背包 每个物品只能用一次 所以是01背包模板用f[j][k] 表示第一维费用不超过V 第二维费用不超过M的方案 #include <iostream>#include <cstring>#include <algorithm>using namespace std;const i…

OneFlow深度学习框原理、用法、案例和注意事项

本文将基于OneFlow深度学习框架&#xff0c;详细介绍其原理、用法、案例和注意事项。OneFlow是由中科院计算所自动化研究所推出的深度学习框架&#xff0c;专注于高效、易用和扩展性强。它提供了一种类似于深度学习库的接口&#xff0c;可以用于构建神经网络模型&#xff0c;并…

R和Python市场篮分析算法及行为分析模型

&#x1f3af;要点 行为数据分析&#xff1a;&#x1f3af;线性统计研究生学业表现&#xff1a;&#x1f58a;绘制测试分数配对图 | &#x1f58a;构建简单线性回归模型&#xff0c;拟合数据 | &#x1f58a;构建多线性回归&#xff0c;三维可视化数据拟合模型 | &#x1f58a…