背景

我遇到的情况是这样的:

一幅图片上有若干个特征点,而这些点的坐标是基于该图片的坐标系(左上角为原点),我需要把这幅图片放置到窗口的某个范围(图片拉伸填充该范围),这个窗口有自己的坐标系,与图片的坐标系不同。因此该图片放置到这个窗口中某个范围后,图片中的特征点的坐标都发生了变换。目标就是求这个变换关系。

变换关系

实际上这是二维平面的坐标变换,由于只涉及到了缩放和平移,因此该变换可以写作

其中xwx_wxw​, ywy_wyw​是窗口坐标系下的坐标,xpx_pxp​, ypy_pyp​是图片坐标系下的坐标。
s1s_1s1​, s2s_2s2​, t0t_0t0​, t1t_1t1​ 是这个变换的系数,分别对应缩放和平移,这4个系数需要根据图片范围,和图片所在窗口范围计算。

不失一般性地假设图片范围为xpo,ypo,wpo,hpo{x_{po}},{y_{po}}, {w_{po}}, {h_{po}}xpo​,ypo​,wpo​,hpo​。虽然图片原点一般为(0,0), 我们还是假设xpo,ypo{x_{po}},{y_{po}}xpo​,ypo​, 因为可能我们以后需要在一张大图片截取一部分嵌入到窗口中,这时xpo,ypo{x_{po}},{y_{po}}xpo​,ypo​就不是0了。

窗口的范围为xwo,ywo,wwo,hwo{x_{wo}},{y_{wo}}, {w_{wo}}, {h_{wo}}xwo​,ywo​,wwo​,hwo​

这时一个简单的解方程的问题,解得

两个坐标系进行了缩放平移后的变换关系相关推荐

  1. SLAM_旋转运动学_两个坐标系速度v和加速度a的关系

    参考:深蓝学院VIO课程 1. 线速度与角速度定义 2. 两个坐标系下的速度v和加速度的关系 惯性系(静止的那个)与body坐标系(运动的那个)之间的旋转矩阵记为 R_IB, 则,两个坐标系下的速度, ...

  2. 3D坐标系中 点 的 平移、旋转和缩放

    基础概念 矩阵 一个m*n矩阵 是 一个m行.n列的矩形数组. 如果一个矩阵只包含单行 或 单列, 这样的矩阵 为 行矩阵或 列矩阵,又叫行向量或列向量 矩阵的乘法: 点 空间中的点,我们通常用一个 ...

  3. 软件项目技术点(1)——d3.interpolateZoom-在两个点之间平滑地缩放平移

    AxeSlide软件项目梳理   canvas绘图系列知识点整理 软件参考d3的知识点 我们在软件中主要用到d3.js的核心函数d3.interpolateZoom - 在两个点之间平滑地缩放平移.请 ...

  4. halcon窗体的移动和缩放_Halcon hWindowControl 鼠标缩放平移区域模板匹配绘制

    如题所示标题,想同时表达两个意思:1:缩放平移绘制区域,2:创建模板匹配区域并保存.被一个技术问题卡住折腾了近大半天时间+熬夜2个小时,经过不懈努力,反复验证各参数意义,找到了问题的原因,终于攻克难题 ...

  5. 圆平移后的方程变化_1.1 直角坐标系中的平移变换与伸缩变换

    1.1 直角坐标系中的平移变换与伸缩变换 目标:平移变换与伸缩变换的应用与理解 一 . 直角坐标系 1. 直线上, 取定一个点为原点, 规定一个长度为单位长度, 规定直线的 一个方向为正方向.这样我们 ...

  6. Android实现支持缩放平移图片

    本文主要用到了以下知识点 Matrix GestureDetector 能够捕捉到长按.双击 ScaleGestureDetector 用于检测缩放的手势 自由的缩放 需求:当图片加载时,将图片在屏幕 ...

  7. 圆平移后的方程变化_平移法解题

    提要 平面内把一个图形沿着一定的方向移动一定的距离得到另一个图形,这种变换称为平移变换.根据需要,平移的对象可以是线段,直线,角,圆,整个图形等.平移只改变图形的位置,不改变图形的形状和大小.平移前后 ...

  8. Android 手势检测实战 打造支持缩放平移的图片预览效果(下)

    转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/39480503,本文出自:[张鸿洋的博客] 上一篇已经带大家实现了自由的放大缩小图 ...

  9. Unity3D使用鼠标旋转缩放平移视角

    Unity使用鼠标旋转缩放平移视角 用代码在Game界面完美实现Scene界面的操作方法. 使用方法:把脚本挂在相机上,把跟踪的target拖到脚本上. 视角跟踪的是一个空物体,当然如果你是做RPG游 ...

最新文章

  1. BPDU tunnel技术简介
  2. js学习总结----获取数组最大值
  3. 全球最大的LoRaWAN智能路灯项目刚刚启动
  4. PHP 性能分析: Xhprof Xhgui
  5. 南京大学计算机考研分数线2021,南京大学2021年硕士研究生复试基本分数线
  6. .net md5 java 偏移量_C# java MD5加密方不一致问题
  7. python中if控制语句_Python中流程控制语句之IF语句
  8. python对于设计师有什么用-如果你有设计师朋友,请对他好一些...
  9. Spark:性能调优
  10. 怎样关闭eclipse中的tooltip提示
  11. spring5.0学习笔记3
  12. 真彩色与伪彩色的概念
  13. linux 运维工程师必备技能
  14. mysql报08S01的错误- SQL Error: 0, SQLState: 08S01 偶发
  15. nmap 扫描端口_Nmap端口规格和扫描顺序
  16. seata(二) 分布式事务框架seata1.3 AT及XA模式实例演示
  17. python系列——多进程之进程池(pool)
  18. AI遮天传 ML-回归分析入门
  19. mac安装配置zsh
  20. Jess的各种小问题

热门文章

  1. JavaScript中七种函数调用方式及对应 this 的含义
  2. Levenberg-Marquardt快速入门教程
  3. QFIL工具如何导出手机分区数据
  4. LCD MIPI DSI时钟计算
  5. WinCE启动失败的原因与解决办法分析
  6. windows 3.x编程指南_18000 MHz 可编程衰减器
  7. 乐观锁、悲观锁简单分析,回忆旧(新)知识...
  8. 设计模式——工厂方法模式和抽象工厂模式
  9. 查看IE浏览器安装的插件
  10. MHA 日常维护命令集