使用OpenCV实现图像平移

news/2024/9/23 11:54:00/

使用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/news/1452395.html

相关文章

CMakeLists.txt 简单的语法介绍

一. 简介 前面通过几个简单地示例向大家演示了 cmake 的使用方法,由此可知,cmake 的使用方法其实还是非常简单的,重点在于编写 CMakeLists.txt,CMakeLists.txt 的语法规则也简单,并没有 Makefile 的语法规则那么复杂难…

HTML_CSS学习:常用文本属性

一、文本颜色 相关代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>文本颜色</title><style>div{font-size: 90px;}.atguigu1{color: #238c20;}.atguigu2{color: rgb(2…

CUDA CPP Unity Compute Shader

为学 开始一个新的学习计划&#xff0c;涵盖&#xff1a; 主题学习内容CUDAProfessional CUDA C Programming/NVIDIA CUDA初级教程视频(周斌)CCPrimer / The Cherno CPPUnity Compute ShaderUdemy Learn to Write Unity Compute ShadersLinear AlgebraMIT 18.06 Prof.Gilbert…

【C语言】用数组和函数实现扫雷游戏

用数组和函数实现扫雷游戏 游戏界面&#xff1a; 代码如下&#xff1a; game.h #pragma once #include <stdio.h> #include <stdlib.h> #include <time.h> #define EASY_COUNT 10 #define ROW 9 #define COL 9 #define ROWS ROW2 #define COLS COL2 //初始…

经典网络解读——Efficientnet

论文&#xff1a;EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks&#xff08;2019.5&#xff09; 作者&#xff1a;Mingxing Tan, Quoc V. Le 链接&#xff1a;https://arxiv.org/abs/1905.11946 代码&#xff1a;https://github.com/tensorflow/t…

【C++】滑动窗口:最大连续1的个数

1.题目 2.算法思路 其实在做这道题的时候并不需要真的把0翻转成1&#xff0c;只需要找到最长的子数组且该子数组中0的个数不大于K&#xff0c;就可以了&#xff01; 当然我们首先想到的是暴力穷举法&#xff1a; 找到所有符合题意的子数组&#xff0c;跳出最长的那个就可以了…

WAAP动态安全解决方案

随着企业数字化进程不断加速&#xff0c;应用安全面临多重威胁&#xff0c;新型攻击方式层出不穷&#xff0c;常见的攻击形式包括Web应用攻击、DDoS攻击、API攻击、恶意爬虫攻击等。企业正面临严峻的安全防护挑战&#xff0c;需寻找一个可靠、全面的安全解决方案。在此情况下&a…

407. 接雨水 II

Problem: 407. 接雨水 II 文章目录 思路解题方法复杂度Code 思路 这个问题可以使用优先队列和广度优先搜索&#xff08;BFS&#xff09;来解决。首先&#xff0c;我们将所有边界上的单元格添加到优先队列中&#xff0c;并将其标记为已访问。然后&#xff0c;我们从队列中取出最…