当前位置: 首页 > news >正文

图像的几何变换之平移

文章目录

    • 前言
    • 需求
    • 代码
    • 运行结果图

前言

图像的几何变换是一个再基础不过的知识点,包括等距变换,相似变换,仿射变换和投影变换。图像的几何变换是指对图像的位置,尺寸,大小,形状和投影进行变换,将图像从原始平面投影到新的视平面,opencv对图像的几何变换,是将一个多维数组通过映射关系转换为另一个多维数组。

需求

将一个原始图像,向右平移,然后和原图一起展示在画布

代码

# @File: 图像的平移.py
# @Author: chen_song
# @Time: 2024/6/14 下午10:27'''
利用仿射变换远离,实现图像的平移,缩放,旋转,斜切
主要利用到cv.warpAffine()函数来实现
'''
import cv2 as cv
import matplotlib.pyplot as plt
import numpy as np# 0614实现图像向右平移if __name__ == '__main__':# 读取彩色图像img = cv.imread('../images/Lena.tif')height, width, channels = img.shapeplt.rcParams['font.sans-serif'] = ['SimHei']  # 显示中文标签plt.rcParams['axes.unicode_minus'] = False# dx:向右平移 dy:向下平移dx,dy = 100,50# 构造平移转换矩阵MAT = np.float32([[1,0,dx],[0,1,dy]])imgTrans1 = cv.warpAffine(img,MAT,(width,height))imgTrans2 = cv.warpAffine(imgTrans1,MAT,(601,401),borderValue=(255,255,255))plt.figure(figsize=(9,3.2))plt.subplot(131),plt.title('1.Original'),plt.axis('off')plt.imshow(cv.cvtColor(img,cv.COLOR_BGR2RGB))plt.subplot(132), plt.title('2. 变换1'), plt.axis('off')plt.imshow(cv.cvtColor(imgTrans1, cv.COLOR_BGR2RGB))plt.subplot(133), plt.title('3. 变换2'), plt.axis('off')plt.imshow(cv.cvtColor(imgTrans2, cv.COLOR_BGR2RGB))plt.tight_layout()plt.show()

运行结果图

在这里插入图片描述

相关文章:

  • 【数据挖掘-思考】分类和聚类
  • Java基础面试重点-1
  • 【java计算机专业毕设】月度员工绩效考核管理系统java MySQL springboot vue maven代码源码 送文档
  • Opus从入门到精通(四)Opus解码程序实现
  • 【CT】LeetCode手撕—102. 二叉树的层序遍历
  • 如何查看当前的gruop_id 的kafka 消费情况 这个可以查看到是否存在消费阻塞问题
  • 记录:UA_Client_readValueAttribute 读取失败 C0错误码
  • RabbitMQ延迟消息(通过死信交换机实现)
  • 电子画册制作与传统画册相比,有哪些优势?
  • nc网络收发测试-tcp客户端\TCP服务器\UDP\UDP广播
  • 仿element-ui 实现自己组件库 <3>
  • 前端 JS 经典:Vue 状态仓库持久化
  • 24年河北自考报名流程详细教程汇总
  • Python实战:小说分词统计-数据可视化
  • 前端框架之 MVVM
  • 【刷算法】从上往下打印二叉树
  • AngularJS指令开发(1)——参数详解
  • Git学习与使用心得(1)—— 初始化
  • Laravel 中的一个后期静态绑定
  • LintCode 31. partitionArray 数组划分
  • pdf文件如何在线转换为jpg图片
  • Python学习笔记 字符串拼接
  • Redash本地开发环境搭建
  • spring security oauth2 password授权模式
  • 闭包,sync使用细节
  • 基于Volley网络库实现加载多种网络图片(包括GIF动态图片、圆形图片、普通图片)...
  • 强力优化Rancher k8s中国区的使用体验
  • 入口文件开始,分析Vue源码实现
  • 使用putty远程连接linux
  • 我与Jetbrains的这些年
  • 浅谈sql中的in与not in,exists与not exists的区别
  • !!【OpenCV学习】计算两幅图像的重叠区域
  • (06)金属布线——为半导体注入生命的连接
  • (1)bark-ml
  • (14)目标检测_SSD训练代码基于pytorch搭建代码
  • (6)设计一个TimeMap
  • (DenseNet)Densely Connected Convolutional Networks--Gao Huang
  • (八)Flink Join 连接
  • (二)springcloud实战之config配置中心
  • (二)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (南京观海微电子)——COF介绍
  • (求助)用傲游上csdn博客时标签栏和网址栏一直显示袁萌 的头像
  • (深度全面解析)ChatGPT的重大更新给创业者带来了哪些红利机会
  • (一)Neo4j下载安装以及初次使用
  • (转)关于如何学好游戏3D引擎编程的一些经验
  • **PyTorch月学习计划 - 第一周;第6-7天: 自动梯度(Autograd)**
  • ./indexer: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object fil
  • .[hudsonL@cock.li].mkp勒索病毒数据怎么处理|数据解密恢复
  • .bat批处理(十):从路径字符串中截取盘符、文件名、后缀名等信息
  • .chm格式文件如何阅读
  • .gitignore不生效的解决方案
  • .Net Core 中间件与过滤器
  • .net web项目 调用webService
  • .NET 的程序集加载上下文
  • .NET 直连SAP HANA数据库