Python图像处理-----几何变换
文章目录
- 一、图像几何变换理论
- 二、图像平移
- 2.1 使用数学公式的实现方式为:
- 2.2 使用矩阵实现的方式为
- 2.3 使用opencv
- 三、图像缩放
- 3.1 用数学式子表示为公式(a为缩放系数):
- 3.2 用矩阵表示如公式所示:
一、图像几何变换理论
图像几何变换不改变图像的像素值,在图像平面上进行像素变换。适当的几
何变换可以最大程度地消除由于成像角度、透视关系乃至镜头自身原因所造成的
几何失真所产生的负面影响。几何变换常常作为图像处理应用的预处理步骤,是
图像归一化的核心工作之一[1]。
一个几何变换需要两部分运算:
- 空间变换:包括平移、缩放、旋转和正平行投影等,需要用它来表示输
出图像与输入图像之间的像素映射关系。 - 灰度插值算法:按照这种变换关系进行计算,输出图像的像素可能被映
射到输入图像的非整数坐标上[2]。
图像几何变换在变换过程中会建立一种原图像像素与变换后图像像素之间的映射关系,通过这种关系,能够从一方的像素计算出另一方的像素的坐标位置。通常将图像坐标映射到输出的过程称作向前映射,反之,将输出图像映射到输入的过程称作向后映射。向后映射在实践中使用较多,原因是能够避免使用向前映射中出现映射不完全和映射重叠的问题。
对于数字图像而言,像素的坐标是离散型非负整数,但是在进行变换的过程
中有可能产生浮点坐标值。这在图像处理中是一个无效的坐标。为了解决这个问
题需要用到插值算法。常见算法如下:
- 最近邻插值
- 双线性插值
- 双立方插值
图像变换是建立在矩阵运算基础上,通过矩阵运算可以很快找到对应关系。绍常见的图像几何变换,包括图形平移、图像缩放、图像旋转、图像镜像、图像仿射、图像透视等。
二、图像平移
图像平移是将图像中的所有像素点按照给定的平移量进行水平或垂直方向上的移动。假设原始像素的位置坐标为(x0,y0),经过平移量(△x,△y)后,坐标变为(x1, y1),如图所示:

用数学式子表示为公式,△x 和△y 称为平移量:
x 1 = x 0 + Δ x \mathrm{x}_{1}=\mathrm{x}_{0}+\Delta \mathrm{x} x1=x0+Δx
y 1 = y 0 + Δ y \mathrm{y}_{1}=\mathrm{y}_{0}+\Delta \mathrm{y} y1=y0+Δy
2.1 使用数学公式的实现方式为:
def translate_img(img, move_y, move_x):h, w, c = img.shapetranslated_img = np.zeros((h, w, c), dtype=np.uint8)for i in range(h):for j in range(w):if i >= move_y and j >= move_x:translated_img[i, j] = img[i - move_y, j - move_x]return translated_img
2.2 使用矩阵实现的方式为
用矩阵表示如公式所示:
[ x 1 y 1 1 ] = [ x 0 y 0 1 ] [ 1 0 0 0 1 0 Δ x Δ y
相关文章:
Python图像处理-----几何变换
文章目录 一、图像几何变换理论二、图像平移2.1 使用数学公式的实现方式为:2.2 使用矩阵实现的方式为2.3 使用opencv三、图像缩放3.1 用数学式子表示为公式(a为缩放系数):3.2 用矩阵表示如公式所示:一、图像几何变换理论 图像几何变换不改变图像的像素值,在图像平面上进行像…...
如何正确选择研究方向?如何实现论文创新?
学术评价是遵循“质量第一”原则的,所以对于研究生来说,从一开始就要把路子走正,自觉树立精品意识,把精力高度集中到提高学位论文的质量上来。这里,根据本人多年来指导博士和硕士研究生的体会,就人文社科研究生学位论文的选题与创新略述管见。 学位论文选题的两个层面 …...
Postgresql源码(113)表达式JIT计算简单分析
相关 《Postgresql源码(85)查询执行——表达式解析器分析(select 11如何执行)》 《Postgresql源码(113)表达式JIT计算简单分析》 1 普通表达式计算 普通表达式计算发生在优化器preprocess_expression中&am…...
CMU15-213 课程笔记 04-Floating Point
文章目录 浮点数如何用二进制表示IEEE 浮点数标准IEEE 浮点数实现IEEE 浮点数在内存里 E exp - bias 计算指数M 1.xxx 尾数计算举例:对一个浮点数进行转换一些关于浮点数的计算等等 浮点数如何用二进制表示 计算机内部的浮点数不是这样存在内存里的(至…...
DockerKubernetes ❀ Service下Port端口区分
文章目录 概述案例 概述 在Kubernetes中,Service(svc)是一种抽象机制,用于将一组 Pod 暴露给其他应用程序或服务。Service 可以有三种类型的端口: nodePort:这是 Service 在节点上公开的端口。可以使用此…...
【C++】笔试训练(一)
目录 一、选择题二、编程1、组队竞赛2、删除公共字符 一、选择题 1、以下for循环的执行次数是() for (int x 0, y 0; (y 123) && (x < 4); x);A 是无限循环 B 循环次数不定 C 4次 D 3次 答案:C 2、以下程序的运行结果是&…...
数据结构与算法之集合: Leetcode 349. 两个数组的交集 (Typescript版)
两个数组的交集 https://leetcode.cn/problems/intersection-of-two-arrays/description/ 描述 给定两个数组 nums1 和 nums2 ,返回 它们的交集 。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序 。 示例 1 输入:nums1 [1,2,…...
Unity 内存性能分析器 (Memory Profiler)
一、 安装 安装有两种方式一: add package : com.unity.memoryprofiler方式二: From Packages : Unity Registry 搜索 Memory Profiler 二、 使用 打开:Windows - > Analysis - > Memory Profiler 打开MemoryProfiler界面࿰…...
前端携带Bearer Token
前端携带Bearer Token 在前端使用 axios 发送请求时,可以通过设置请求头来携带 Bearer Token。Bearer Token 是一种常用的身份验证方式,它通常用于 OAuth2 授权流程中。 要在 axios 中携带 Bearer Token,可以通过设置 Authorization 请求头…...
leetcode 周赛 364
参考视频: 单调栈【力扣周赛 364】 文章目录 8048. 最大二进制奇数100049. 美丽塔 I100048. 美丽塔 II100047. 统计树中的合法路径数目 8048. 最大二进制奇数 题目链接 给你一个 二进制 字符串 s ,其中至少包含一个 1 。 你必须按某种方式 重新排列 字…...
开机自启动Linux and windows
1、背景 服务器由于更新等原因重启,部署到该服务上的响应的应用需要自启动 2、Linux 2.1 方式一 编写启动应用的sh脚本授权该脚本权限 chmod 777 xxx.sh 修改rc.loacl 位置:/etc/rc.local 脚本:sh /home/xxxx.sh & 授权rc.local …...
科技云报道:大模型的阴面:无法忽视的安全隐忧
科技云报道原创。 在AI大模型的身上,竟也出现了“to be or not to be”问题。 争议是伴随着大模型的能力惊艳四座而来的,争议的核心问题在于安全。安全有两个方面,一个是大模型带来的对人类伦理的思考,一个是大模型本身带来的隐…...
2023年前端流行什么技术和框架了?
Web前端三大主流框架有React、Vue.js和Angular,由于接触过Vue.js,接下来主讲最新的Vue3.0! Vue3.0作为最新版本的Vue.js框架,拥有更强大的性能和更丰富的功能,为低代码开发平台注入了全新的活力。而JNPF快速开发平台作…...
Nginx 背锅解析漏洞
Nginx 背锅解析漏洞 文章目录 Nginx 背锅解析漏洞1 在线漏洞解读:2 环境搭建3 影响版本:4 漏洞复现4.1 访问页面4.2 上传文件 4.3 上传失败4.4 使用bp进行分析包4.5 对返回图片位置进行访问4.6 执行php代码技巧-图片后缀加./php4.7 分析原因 --》cgi.fix_pathinfo--…...
AI与传统数据库 - ChatGPT风过之后 | 从Duet AI说开来
作者:Ni Demai,是NineData数据库产品专家,曾任阿里云数据库国际产品总负责人,华为高斯 GaussDB 创始团队核心架构师,IBM Db2 资深研发工程师。 Demai 专注 Cloud-Native database 架构设计,分析型 MPP&…...
L1-032 Left-pad C++解法
一、题目再现 根据新浪微博上的消息,有一位开发者不满NPM(Node Package Manager)的做法,收回了自己的开源代码,其中包括一个叫left-pad的模块,就是这个模块把javascript里面的React/Babel干瘫痪了。这是个…...
Python 用列表实现模拟手机通讯录(简易版)
"""列表实现好友管理系统知识点:1、列表存储信息2、列表增删改查3、嵌套循环4、字符串分割和拼接(重点)5、列表索引"""# 暂存好友信息(程序结束数据删除) friend_info list()input_buf…...
macOS使用官方安装包安装python
新手程序员可能想知道如何在 Mac 上正确安装 Python,这里介绍在 macOS 上安装 Python 的方法。 操作步骤 1.从 Python 官方网站 (python.org) 下载最新的 Python 版本. 单击 macOS 链接并选择最新的 Python 版本。 2.下载完成后,双击包开始安装Python…...
如何重装Windows Mirosoft Store
重装Windows Mirosoft Store 如何重装Windows Mirosoft Store呢?如何下载Windows Mirosoft Store呢?Windows Mirosoft Store不见了咋办?Windows 自带软件不见了咋办等等?写在前面 1.文件准备2.安装 如何重装Windows Mirosoft Stor…...
软考高级系统架构设计师系列论文真题七:基于构件的软件开发
软考高级系统架构设计师系列论文真题七:基于构件的软件开发 一、基于构件的软件开发二、找准核心论点三、理论素材准备四、精品范文赏析1.摘要2.正文3.总结软考高级系统架构设计师系列论文之:百篇软考高级架构设计师论文范文软考高级系统架构设计师系列之:论文题目类型、论文…...
多语言交易所/外汇系统源码/合约/期权/杠杆合约 秒合约/理财/申购
支持控盈亏等等功能支持合约、期权两大交易品类(当前选中「期权」),以 XRP/USDT 为交易对示例,提供双向交易:买涨(做多):预判价格上涨时开仓盈利买跌(做空)&a…...
PyTorch 2.8深度学习镜像入门必看:RTX 4090D环境验证与快速上手步骤
PyTorch 2.8深度学习镜像入门必看:RTX 4090D环境验证与快速上手步骤 1. 镜像概述与核心优势 PyTorch 2.8深度学习镜像专为RTX 4090D显卡优化设计,提供开箱即用的深度学习开发环境。这个镜像最显著的特点是免去了复杂的环境配置过程,让开发者…...
UI设计入门指南——Figma新手必备操作全解析
1. Figma入门:从零到第一个设计稿 第一次打开Figma时,很多人会被满屏的英文界面和复杂工具栏吓到。其实我刚接触时也一样,但现在回头看,掌握基础操作只需要30分钟。Figma作为目前最流行的UI设计工具,最大的优势就是零门…...
如何高效优化Windows系统性能:AtlasOS完整调优指南
如何高效优化Windows系统性能:AtlasOS完整调优指南 【免费下载链接】Atlas 🚀 An open and lightweight modification to Windows, designed to optimize performance, privacy and usability. 项目地址: https://gitcode.com/GitHub_Trending/atlas1/…...
【分布式理论】CAP PACELC
文章目录一、引言二、CAP理论2.1 CAP分别指的是什么?2.2 CAP 的经典表述:三选二2.1 CP 系统(牺牲可用性,保证一致性)2.2 AP 系统(牺牲一致性,保证可用性)三、PACELC理论3.1 PACELC的…...
Stable-Diffusion-v1-5-archive多风格生成效果:复古海报/科技感UI/手绘插画实拍
Stable Diffusion v1.5 Archive多风格生成效果:复古海报/科技感UI/手绘插画实拍 1. 模型介绍与核心能力 Stable Diffusion v1.5 Archive是经典SD1.5文生图模型的归档版本,作为AI图像生成领域的"常青树",它依然保持着强大的通用图…...
终极Enformer基因表达预测指南:如何在10分钟内快速部署深度学习模型
终极Enformer基因表达预测指南:如何在10分钟内快速部署深度学习模型 【免费下载链接】enformer-pytorch Implementation of Enformer, Deepminds attention network for predicting gene expression, in Pytorch 项目地址: https://gitcode.com/gh_mirrors/en/enf…...
威联通NAS安全防护全攻略:10个必做设置让你的数据固若金汤
威联通NAS安全防护全攻略:10个必做设置让你的数据固若金汤 在数字化时代,数据安全已成为个人和企业最关注的议题之一。威联通NAS作为专业级网络存储设备,凭借其强大的硬件性能和丰富的软件生态,成为许多用户存储重要数据的首选。然…...
BGE-Large-Zh前沿探索:量子计算语义编码实验
BGE-Large-Zh前沿探索:量子计算语义编码实验 引言 量子计算正在重新定义计算的边界,而自然语言处理作为人工智能的核心领域,也迎来了与量子技术融合的历史性机遇。我们进行了一项创新实验:将BGE-Large-Zh这一强大的语义编码模型…...
【Python】安装 Python 环境
需要安装的环境主要是两个部分: 运行环境:Python开发环境:PyCharm 一、安装 Python 1、找到官方网站 Welcome to Python.org 2、找到下载页面 选择 "Download for Windows": 现在主流使用的 Python 版本是 Python…...
