NEFU数字图像处理(4)图像几何变换

news2024/11/9 6:29:12

一、图像几何变换基础

1.1概述

定义:
使原始图像能够按照需要,产生大小、形状、位置等方面的几何变化·

本质特征:

图像几何变换不是改变图像的像素值,而是改变像素所在的位置。

 1.2相关概念

二维图像几何变换可通过矩阵线性变换来实现,为了能够使用统一的矩阵线性变换形式来表示二维图像的各种几何变换,引入了齐次坐标。


齐次坐标:用n+1维向量来表示n维向量的方法

 1.3图像平移变换

将图像上所有的像素点,按照水平方向和垂直方向给定的偏移量(为整数)移动。平移后图像上的每个像素点都可以在原图像中找到对应像素点。即平移后的图像与原图像相同,只是位置发生了变化·

1.4图像镜像变换

镜像变换也称为对称变换(或反射变换)
图像镜像变换具体分为两种形式:

  • 水平镜像
  • 垂直镜像

镜像后图像上的每个像素点都可以在原图像中找到对应像素点。

1.5图像旋转变换

将图像上的所有像素点绕图像中心旋转相同角度。
令逆时针旋转角度为正,顺时针旋转角度为负。 

 举例

 图像旋转之后,出现以下两个现象:

  • 像素的排列不是完全按照原有的相邻关系。
  • 出现空洞点,会影响图像画面质量。

插值法

行插值(或列插值)
第1步:从上到下逐行扫描,找出当前行中第一个和最后一个非背景点,将其坐标记作(i,k1)和(i,k2)用行号和列号表示)

1.6图像比例缩放变换

将原图像在x轴方向缩放 fx 倍,在y轴方向缩放 fy倍,从而获得一幅新图像

出现的问题:经过比例缩放后,新图像中的像素点可能在原图像中找不到相对应的像素点。

解决方法:灰度插值处理

  • 最邻近插值法
  • 双线性插值法

 最邻近插值法

图像比例缩小变换 

图像比例放大变换 

 双线性插值法

 

1.7图像错切变换

错切变换可以使图像产生扭变。
图像错切分为水平方向错切和垂直方向错切两种形式。

水平错切

原理:图像水平错切,只在水平方向上产生一段偏移量,而垂直方向保持不变,即只在水平方向上独立变化。设原图像上某像素点P0(x0, y0),经水平方向错切之后到像素点P(x, y)。

 

 垂直错切

原理:图像垂直错切,只在垂直方向上产生一段偏移量,而水平方向保持不变,即只在垂直方向上独立变化。设原图像上某像素点P0(x0, y0),经垂直方向错切之后到像素点P(x, y)。

 

1.8图像的复合变换 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1164425.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

中心线提取的全卷积网络【IPMI 2019】

论文地址:Excellent-Paper-For-Daily-Reading/medicine at main 类别:医学 时间:2023/11/02 摘要 论文提出了一种将端到端可训练多任务全卷积网络(FCN)与最小路径提取器相结合的中心线提取框架。FCN同时计算中心线距离图和检测分支端点。…

深度学习之基于YoloV5的道路地面缺陷检测系统(UI界面)

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介 二、功能三、道路地面缺陷检测系统四. 总结 一项目简介 基于YoloV5的道路地面缺陷检测系统利用深度学习中的目标检测算法,特别是YoloV5算法&am…

线性代数 第六章 二次型

一、矩阵表示 称为二次型的秩。只含有变量的平方项,所有混合项系数全是零,称为标准形;平方项的系数为1、-1或0,称为规范形。 二次型的标准形不唯一,可以用不用的坐标变换化二次型为标准形;二次型的规范形唯…

零代码编程:用ChatGPT批量删除掉对话音频文件的片头

一个文件夹里面有很多个mp3音频文件, 但是开头的片头太长了:40秒 怎么用ChatGPT批量去掉这些片头呢? 在ChatGPT中输入提示词: 你是一个Python编程专家,要完成一个批量删除掉对话音频文件开头的任务 ,具体…

能源化工过程-故障诊断数据集初探-田纳西-伊斯曼过程数据集

1. 田纳西-伊斯曼过程(TE)数据集简介 整个TE数据集由训练集和测试集构成,TE集中的数据由22次不同的仿真运行数据构成,TE集中每个样本都有52个观测变量。d00.dat至d21.dat为训练集样本,d00_te.dat至d21_te.dat为测试集样本。d00.dat和d00_te.dat为正常工况下的样本。d00.d…

Redis字符串的表示

字符串的表示 Redis 是由 c 语言开发的,但是 Redis 使用字符串的类型却没有采用 c 语言的字符串类型,接下来我们看看为什么要采用这样的设计 c 语言表示字符串用字符数组,用’\0’这样的字符结尾 一、Redis 字符串的表示——SDS Redis 自己…

leetCode 746. 使用最小花费爬楼梯 + 记忆化搜索 + 递推 + 动态规划 + 空间优化

关于此题我的往期文章: leetCode 746. 使用最小花费爬楼梯 动态规划-CSDN博客https://heheda.blog.csdn.net/article/details/133325840 dfs(i-1) 跳到 dfs(i) 需要花费 dfs(i-1) cost[i-1]dfs(i-2) 跳到 dfs(i) 需要花费 dfs(i-2) cost[i-2] (1&…

node教程(四)Mongodb+mongoose

文章目录 一、mongodb1.简介1.1Mongodb是什么?1.2数据库是什么?1.3数据库的作用1.4数据库管理数据的特点 2.核心概念3.下载安装与启动4.命令行交互4.1数据库命令4.3文档命令 二、Mongoose1.介绍2.作用3.使用流程4.插入文档5.mongoose字段类型 一、mongod…

【服务器】Redis的安装及使用命令(Linux、Windows版)

目录 一、Redis简介 二、Redis安装 1、Linux版 1.1、下载 1.2、导入 1.3、解压 1.4、安装 1.5、修改文件 1.6、启动redis 1.7、测试 1.8、结束进程 1.9、修改密码访问 1.10、安装客户端工具&连接 2、Windows版 2.1、下载 2.2、安装 2.3、修改 2.4、连接 …

【Qt控件之QMovie】详解

Qt控件之QMovies 概述公共类型属性公共函数公共槽函数信号静态公共成员示例使用场景 概述 QMovie类是一个方便的类,用于播放具有QImageReader的动画。此类用于显示没有声音的简单动画。如果您想显示视频和媒体内容,请改用Qt多媒体框架Qt Multimedia mul…

整理笔记——0欧电阻、电感、磁珠

设计电路时,经常用到0欧电阻、电感、磁珠,这三个基础电子原件万用表量都是“短路”,这三者之间有什么区别?什么情况下用什么原件? 一、0欧电阻 0欧电阻,并不是指元件的电阻值为0,而是电阻值很小…

SQL面试

#(1)请写出要查询员工J开头的名字其工号(EMPNO)及部门名称(DEPTNA)的 SQL语句SELECT e.emp,e.name,d.deptna FROM emp e left join dept d on d.deptno e.deptno where e.name like J%#(2)请写出要查询 Kevin 所在部门的部门代号(DEPTNO)及部门名称(DEPTNA)的 SQL 语句SELECT e…

手持创新疫苗“国际名片”,康希诺叩开全球市场大门

消灭病痛,重在防患于未然,消灭病源和阻断传播渠道。疫苗,因此成为了全人类“防未病”的重要手段。而当着眼于有全球性风险的疾病,疫苗创新的国际化就显得尤为重要。 刚刚过去不久的10月24日,世界脊髓灰质炎日&#xf…

【kafka】记一次kafka基于linux的原生命令的使用

环境是linux,4台机器,版本3.6,kafka安装在node 1 2 3 上,zookeeper安装在node2 3 4上。 安装好kafka,进入bin目录,可以看到有很多sh文件,是我们执行命令的基础。 启动kafka,下面的…

蓝桥白皮书16.0版——2、蓝桥等考介绍及代报名方式、报名时间

等级考试综述 蓝桥等考全称为“蓝桥青少年信息技术等级考试” 。等级考试聚焦学生学习过程的跟 踪评价 ,以考促学 ,标准化中小学校教学、校外机构培训和家长学生自学的学习目标及学习进程。 等级考试命题原则 等级考试各组别考试范围是掌握该组别编程知识…

js字符串支持多个分隔符分割

js字符串支持多个分隔符分割 场景代码 场景 用户输入内容后,支持多个分隔符(比如:中英文逗号,分号以及换号)对字符串进行分割,之后提交给后台同学解析。 代码 function splitString(inputString, separat…

封装taro的api请求工具request.ts,并发送网络请求

使用taro的网络请求工具时,并没有统一的请求封装工具,这里我来分享一下我的请求工具,可以设置base_url和超时时间,还有响应数据格式处理。 在utils/request.ts中封装请求: import Taro from tarojs/taro;const TIME_…

Java——StringBuffer与StringBuilder的区别

Java——StringBuffer与StringBuilder的区别 StringBuffer和StringBuilder是Java中用于处理字符串的两个类,它们之间的主要区别在于线程安全性和性能方面。 1. 线程安全性: StringBuffer:StringBuffer 是线程安全的,所有的公共方…

知心早安问候语,愿你享受美好的时光,幸福快乐每一天

人生万里路,走好每一步,身体是本钱,平安是财富,开心就是护身符,健康才是摇钱树。新的一天,事事顺意! 晨起福门开,快乐安康在,愉悦心态好,生活充满爱&#xf…

Blazor 虚拟滚动/瀑布流加载Table数据

page "/virtualScrolling" using BlazorApp.Data<h3>Table 虚拟滚动行</h3> <h4>Table 组件显示大数据时通常采用分页加载数据&#xff0c;还有一种虚拟行的技术类似手机滚动到底部时后台自动加载数据</h4><p>快速滚动时显示行占位&am…