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. AngularJS 2.0

    https://angular.io/docs/ts/latest/guide/learning-angular.html QuickStart: git clone https://github.c ...

  2. weblogic

    停止(2) 更新 原路径 下一步 激活更新 启动(1)

  3. IE中cookie问题,带下划线的前置域名会不给设cookie,谷歌和火狐浏览器则不受影响

    !! WARNING !!: Server hostname contains an underscore and this response sets a cookie. Internet Expl ...

  4. sprint 3 总结

    1.要求: 演示可参考毕业设计答辩,包含两部分内容: 项目陈述,可综述项目.团队.开发过程等. 运行演示,实现的功能.业务.用户反馈等. 希望各组认真准备,拿出最好的阵容最好的状态,展示一学期的学习与 ...

  5. iOS 开发:CoCoapods的使用和安装

    CocoaPods的使用和安装 一.什么是CocoaPods? 前言: 思考如何引入一个第三方框架. 例如: 百度地图SDK.友盟.ShareSDK. 信鸽推送等. 从github或某处下载第三方SD ...

  6. Windows编程入门程序详解

    引用:http://blog.csdn.net/jarvischu/article/details/8115390 1.     程序 /******************************* ...

  7. git 常用命令粗略总结

    本文版权归cxun所有,如有转载请注明出处与本文链接,谢谢!原文地址:http://www.cnblogs.com/cxun/p/5630190.html git的功能很强大,但是其实很简单,用来用去 ...

  8. 亲手使用Sencha Touch + phonepag开发Web APP随笔 -- 第一个APP

    参考博文: [Phonegap+Sencha Touch] 移动开发1.准备工作 [Phonegap+Sencha Touch] 移动开发2.PhoneGap/Cordova初步使用   经过差不多1 ...

  9. mybatis+MySQL--CRUD

    ①导入jar包: ②.配置config.xml: ③.entity: mapping: ④.DAO:   —————————————————————————————————— 目录结构: —————— ...

  10. LDD3 字符设备驱动简单分析

    最近在看LDD3,理解了一下,为了加深自己的印象,自己梳理一下.我用的CentOS release 6.6 (Final)系统. 一.编写编译内核模块的Makefile 以下是我用的Makefile ...