Mojette Transform 是由Polytech Nantes的IRCCYyN实验室的Jeanpierre Guédon首先提出的一种离散的几何转换,它来源于Radon transform,是Radon transform的离散的更准确的表达。

Radon Transform:

Radon transform 是将在一个坐标系中的几何形状以一定的角度映射到一个新的坐标上,如上图所示,在笛卡尔坐标系中的椭圆以角度θ映射到了一个新的坐标系中,其公式如下:

proj(t,θ)=∫∫f(x,y)δ(t-x.cosθ+y.sinθ)dxdy

符号δ表示面积相等

Mojette Transform:

Radon是连续的,Mojette则是离散的。

其转换公式为

proj(p,q,b)=∑∑f(k,l)Δ(b-pl+qk)

其中,q、p为投影的方向,k、l为坐标,b=pl-qk。 可以证明,在(p,q)方向上,共有nbins=(H-1)|q|+(W-1)|p|+1个新的坐标值(如上图,在4*4的矩形中,在(1,0)方向上有4个新的坐标值,在(1,1)方向上有7个新的坐标值)

任意大小的矩形的mojette变换的算法如下:

Begin

rectangle's height and width is H and W, the projection angle is p and q

nbins=(H-1)|q|+(W-1)|p|+1

//为了方便,我们从0开始计算的新的坐标值,即从0到nbins-1

//计算补偿值,每个坐标的投影后的新的坐标减去这个补偿值即可

HL=p(H-1)

HR=p(H-1)-q(W-1)

LR=-q(W-1)

LL=0

if HL<HR then offset=HL else offset=HR

if LR<offset then offset=LR

if LL<offset then offset=LL

//开始计算每个坐标对应的投影的值

for k=0:W-1

for l=0:H-1

b=pl-qk

proj(b-offset)+=f(k,l)

end for

end for

end

例:

如上图,假设为5*4的矩阵,横坐标k,纵坐标l,投影方向为(2,1),首先对四个角计算其b值,将最小的设为offset,以(0,0)这一列为例计算其投影之后的值,在这一列上,共有(0,0),(2,1),(5,3)三个坐标,其b(b=pl-qk)值都为0,但是我们是从0开始索引,所以b-offset=4即为我们新的投影的坐标,而在新投影上的值为这三个值的和。

通过以上算法即可计算在任意大小的矩阵中任意投影方向的Mojette变换,但在实际应用中,反mojette变换才是最有用的,inverse-mojette将在下一篇博客中具体介绍。

如果有兴趣,可以登录http://www.mojette.net/ 查看关于Mojette的一个小游戏,其正是inverse-mojette变换的具体实例。

Mojette的更多相关文章

  1. {ICIP2014}{收录论文列表}

    This article come from HEREARS-L1: Learning Tuesday 10:30–12:30; Oral Session; Room: Leonard de Vinc ...

随机推荐

  1. 跟着思维导图学习javascript

    1.javascript 变量 2.javascript 运算符 3.javascript 数组 4.javascript 流程语句 5.javascript字符串函数 6.javascript 函数 ...

  2. chrome调试 JavaScript 脚本

    随着 JavaScript 应用的复杂性逐渐提高,开发者需要有力的调试工具来帮助他们快速发现问题的原因,并且能高效地修复它.Chrome DevTools 提供了一系列实用的工具使得调试 JavaSc ...

  3. ssh+expect批量分发

    Expect安装 [root@web02 scripts]# yum install expect SSH密钥生成 [root@web02 scripts]# ssh-keygen -t dsa   ...

  4. weblogic10异常:org.hibernate.hql.ast.HqlToken

    转自:http://www.programgo.com/article/68682994452/ 在做查询的时候,报出  org.hibernate.QueryException: ClassNotF ...

  5. 笔记——shell脚本学习指南

    <shell脚本学习指南>机械工业出版 ISBN 987-7-111-25504-8 第2章 2.4 初级陷阱 1.当今的系统,对#!这一行的长度限制从63到1024个字符都有,尽量不要超 ...

  6. sql经常会遇到“将截断二进制或字符串”的错误——处理办法

    sql经常会遇到“将截断二进制或字符串”的错误——处理办法 1.修改列长度——无法定位具体字段 2.程序逻辑中增加判断,以定位具体字段 由于我是在报表数据库中直接写SQL,没有校验逻辑,所以想把全部字 ...

  7. CSS中隐藏内容的3种方法及属性值

    CSS中隐藏内容的3种方法及属性值 (2011-02-11 13:33:59)   在制作网页时,隐藏内容也是一种比较常用的手法,它的作用一般有:隐藏文本/图片.隐藏链接.隐藏超出范围的内容.隐藏弹出 ...

  8. Delphi XE5-XE8 以上 如何发布文件到工程中

    首发在 ① FireMonkey[DELPHI XE5]  165232328 欢迎使用 FMX 开发手机程序的高手来访. (* *********************************** ...

  9. Qt qml 模拟iphone slide to unlock 的聚光动画文字效果

    模拟iphone slide to unlock 的聚光动画文字效果    /底层放淡文字    /前景放高亮文字+半透明遮罩    /动画移动遮罩 Author: surfsky.cnblogs.c ...

  10. 介绍Ext JS 4.2的新特性的《深入浅出Ext JS》上市

    以用户为中心的时代,应用的界面外观变得越来越重要.然而,很多程序员都缺乏美术功底,要开发出界面美观的应用实属不易.Ext JS的出现,为广大程序员解决了这一难题.它有丰富多彩的界面和强大的功能,是开发 ...