itti1998代码阅读

我认为这算法的核心是 用原图减去高斯滤波的结果来表示surrounds 对 center的抑制;用不同的feature 通道来表示眼睛的不同感受神经;用N(.)强调峰值;

1)使用默认参数

2)计算Gabor滤波器

从0º~180º等间隔选择Gabor角,为param.gabor

计算saliency map的长和宽,和原图像等比例

imgs{1, 2, 3} 三种center scale

如果原图像没有三个通道(rgb)则feature maps不要C和D通道

3)计算D通道的feature map:getchan()

对于每个center scale(默认3个128,64,32)

D通道:

如果原图有rgb三个颜色通道,则把原图从rgb转换到dkl空间,dkl空间的三个通道都加入chan{}中

getchan()计算D通道的feature maps 返回时,chans里面有9个cell,分别是三个scale的dkl分量。

4)计算D通道每个feature map的pixel saliency:pixsal()函数

调用mygausskernel()产生给定surrounds sigma(默认为2和8)的高斯核函数,一维的

这个feature map(局部变量img)和高斯核向量ker做卷积,在和ker的转置做卷积。这就是高斯模糊处理了(好像不是这样的???)

将原图和高斯模糊的结果做差的平方,然后化到0,1之间 (直接减去高斯滤波的结果?文章里是cross scale减啊????)

调用mypeakiness()做文中说的N(.)处理,这里面调用了一个找局部极值的mexLocalMaximaGBVS,是某个开源库里的东西?

最后把不同的surrounds sigma的到的结果加起来,对这个和在化到0,1之间

以128*128为例,d分量和各自saliency分别为:

对于D通道的各个maps,全都resize到mapSize,再用N(.)求得的权值求加权和作为D通道的saliency map

5)直接求三个颜色分量的均值,就是I通道的feature。I通道128*128的feature和saliency如下

I通道的加权和为

6)O通道,0º,128*128的feature和saliency:

O通道加权和:

三个通道求加权和:blurring处理(高斯滤波模糊):加中心偏置(乘以高斯函数):

最后化到0,1区间的到最终saliency map

时间: 2024-08-05 07:20:19

itti1998代码阅读的相关文章

《代码阅读方法与实践》阅读笔记之二

时间过得真快,一转眼,10天就过去了,感觉上次写阅读笔记的场景仿佛还历历在目.<代码阅读方法与实践>这本书真的很难写笔记,本来我看这本书的名字还以为书里大概写的都是些代码阅读的简易方法,心想着这就好写笔记了,没想到竟然好多都是我们之前学过的东西,这倒让我有点无从下手了.大概像我们这些还没有太多经历的大学生,总是习惯于尽量避免自己的工作量,总是试图找到一些完成事情的捷径吧.总之,尽管我不想承认,但我自己心里很清楚,我就是这种人.下面开始言归正传,说说接下来的几章内容归纳. 这本书在前面已经分析了

代码阅读问题

---恢复内容开始--- 下面列举阅读代码过程中遇到的问题和相应的资料查询: 1.namespace的用途:http://www.kuqin.com/language/20080107/3532.html 2.enum 的用途:http://pcedu.pconline.com.cn/empolder/gj/c/0502/562347.html 3.SFML:http://www.sfml-dev.org/ 4.双冒号的用法:http://blog.csdn.net/zimingjushi/ar

代码阅读方法与实践(三)

我们分析的许多系统都遵循一种简单的“主程序和子例程”结构.常见的.重要的结构可以归类为少数迥然相异的构架类型:集中式储存库.数据流.面向对象或分层构架.这些构架类型常常结合成一个层次结构用来控制大型系统的复杂性.接下来我们将独立的分析每种构架类型,但是一个系统可以同时展示出多种不同的构架类型.以不同的方式检查同一个系统.分许系统的不同部分.或使用不同级别的分解,都有可能发现不同的架构类型. 集中式储存库的构架模型依赖于一个中心过程或数据结构,他在系统中担任控制或信息的集线器.即使不需要数据库提供

《代码阅读方法与实践》阅读笔记三

之前已经看完了<代码阅读方法与实践>的前六章,基本上也就是看得比较粗略,没有很精细的阅读,上节课听到老师说的“学术交流会”还是很紧张的,挺害怕被问到问题,结果回答不出来可怎么办啊,不仅丢人,分也送给别人了啊,这可怎么破啊.所以呢,我打算近期再看一遍,不管有没有用,算是给自己加点自信吧. 第七章,讲的是编程规范和约定,主要就是文件的命名及组织.缩进.编排.命名约定.编程实践.过程规范之类的,其实这一章也不用我做过多的介绍,因为大家应该都有听各科老师讲过好几遍了,道理大家都懂,但是大家除了在理论上

《代码阅读方法与实践之读书笔记之一》

阅读代码是程序员的基本技能,同时也是软件开发.维护.演进.审查和重用过程中不可或缺的组成部分.<代码阅读方法与实践之读书笔记之一>这本书围绕代码阅读,详细论述了相关的知识与技能.我希望通过仔细阅读并学习本书,可以快速地提高我的代码阅读的技能与技巧,进而从现有的优秀代码.算法.构架.设计中汲取营养,提高自身的开发与设计能力.此次读了此书的前四章,以下是我从中汲取到的宝贵养分: 从第一章<导论>一节中我体会到了我们要养成一个经常花时间阅读别人编写的高品质代码的习惯,因为阅读高品质的代码

图形化代码阅读工具——Scitools Understand

Scitools出品的Understand 2.0.用了很多年了,比Source Insight强大很多.以前的名字叫Understand for C/C++,Understand for Java,Understand for Ada,最近这几年合并成了一个产品. 最值得一提的是各种关系图的绘制,以及在这些图上的交互操作:Declaration Graphs / Hierarchy Graphs / Control Flow Graphs / Dependency Graphs / UML C

NRE代码阅读记录

本来是为了论证自己的观点,把安全标签打在RunningConfig里,就写了个代码分析,结果写着写着发现的确不应该是在RunningVM里.意外的发现看代码的时候这么写写还是挺不错的,也避免了看了后面的忘记前面的.这种底层的代码实在是很难理解,对我来说就像是小学生去算高数一样,也只能硬着头皮去看了. vmmng.cc对应的就是如下界面(回头放图上来,ubuntu下没有什么截图工具,总不能把整个屏幕放上来)然后"3"键可以新建tiny-core虚拟机,对应到代码里,也就是input_th

代码阅读分析工具Understand 2.0试用

Understand 2.0是一款源码阅读分析软件,功能强大.试用过一段时间后,感觉相当不错,确实能够大大提高代码阅读效率.因为Understand功能十分强大,本文不可能详尽地介绍它的全部功能,所以仅仅列举本人觉得比較重要或有特色的功能,以做抛砖引玉之举. Understand 2.0能够从http://www.scitools.com/下载到,安装后能够试用15天. 使用Understand阅读代码前,要先创建一个Project,然后把全部的源码文件增加到这个Project里.这里我创建了一

Mangos代码阅读

Mangos代码阅读 2010-12-14 15:51:07|  分类: mangos研究|举报|字号 订阅 逻辑层: 类World实现了wow的World,所有的逻辑处理 MaNGOS 下载,编译,配置和运行的基本步骤 下载和安装msysgit,用于代码管理我使用的是Git-1.6.5.1-preview20091022.exe  下载和安装tortoisegit,用于代码管理我使用的是TortoiseGit-1.3.2.0-32bit.msi  使用git://github.com/mang