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. 上下箭头选中 选项事件 JS

    //上下键 选择事件 searchBackgroud 为样式,只做标记,无实质样式,因为和其他样式不兼容,只能添加CSS $(document).keydown(function (event) { ...

  2. XML和JSON数据格式对比

    概念 XML 扩展标记语言 (Extensible Markup Language, XML) ,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据.定义数据类型,是一种允许用户对自己的标记语 ...

  3. NOI 05:最高的分数描述

    描述 孙老师讲授的<计算概论>这门课期中考试刚刚结束,他想知道考试中取得的最高分数.因为人数比较多,他觉得这件事情交给计算机来做比较方便.你能帮孙老师解决这个问题吗? 输入输入两行,第一行 ...

  4. Android MVP + 泛型,实现了友好VP交互及Activity潜在的内存泄露的优化

    Android MVP粗来已经有段时间了,在项目中我也多多少少用了一些,不得不说代码使用这种模式后,条例确实清晰了好多,整个流程看起来有点各司其职的感觉(另一种的java面向对象的方式). 不过这里是 ...

  5. CMD命令大全

    有关某个命令的详细信息,请键入 HELP 命令名 ASSOC 显示或修改文件扩展名关联. AT 计划在计算机上运行的命令和程序. ATTRIB 显示或更改文件属性. BREAK 设置或清除扩展式 CT ...

  6. SQL语句增加字段、修改字段、修改类型、修改默认值

    一.修改字段默认值 alter table 表名 drop constraint 约束名字   ------说明:删除表的字段的原有约束 alter table 表名 add constraint 约 ...

  7. nginx,文件下载,预览,防止浏览器下载时直接打开,防止预览时直接下载文件,解决nginx谷歌浏览器不支持下载问题

    公司项目逐渐增多,对效率的要求越来越高,不同项目分部不同服务器,最初想用nginx 就是为了多个项目用一个url和服务器宕机解决方案 nginx也可作为附件服务器,毕竟nginx也对静态文件支持较好, ...

  8. Foundation框架

    1.框架是由许多类.方法.函数.文档按照一定的逻辑组织起来的集合,以便使研发程序变的更容易 清除缓存,删除这个文件夹下的所有文件/Users/fanyafang/Library/Developer/X ...

  9. vs打开项目出现“尚未配置为Web项目XXXX指定的本地IIS URL HTTP://localhost:…… .要打开此项目,需要配置虚拟目录……”提示

    今天打开网上下载的一个源码,出现如标题的这个问题,这是从未遇见的提示.尝试点击是,但是网站还是运行不起来.于是网上搜索,就有了这篇. 解决的方案如下: 注意:也可以用记事本把工程文件(.vcxproj ...

  10. java实现ftp文件的上传与下载

    最近在做ftp文件的上传与下载,基于此,整理了一下资料.本来想采用java自带的方法,可是看了一下jdk1.6与1.7的实现方法有点区别,于是采用了Apache下的框架实现的... 1.首先引用3个包 ...