matlab 图像显著性检测ft_全局对比度的图像显著性检测算法

ff064e6c189b67c24b19e0513dbef1d8.gif

点击上方蓝字关注我们

星标或者置顶【OpenCV学堂】

干货与教程第一时间送达!

显著性检测概念

3fd7b91fe493fe924baa3dc7230e9d0b.png

显著性就是可以快速引起你注意的对象或者物体,在图像或者视频中显著性检测的结果往往是图像或者视频中对象,在神经学科中显著性检测被描述为注意力机制,目的是聚焦或者缩小看到的对象场景重要部分,显著性检测可以自动处理图像中对象表示。显著性检测可以让对象检测,图像分割等算法更加聪明与高效的工作。

算法思想

作者认为生物皮层对图像对比度比较敏感,通过图像对比度可以实现图像显著性特征提取,提出了两种基于全局对比度的显著性检测方法

  • 基于直方图的对比度方法(histogram-based contrast 简称HC)

  • 基于区域的对比度方法(region-based contrast 简称RC)

HC详解

HC的显著性图生成主要是基于输入图像的颜色值直方图分布,生成像素级别的显著性值,每个像素点的显著性值是它跟剩下全部图像像素点的对比度之间的度量,度量公式为:

0be38c6d7db47dd93840c83b090f914b.png

 为12,对Lab色彩空间只在L上计算,但是这种做法有很大的弊端,就是颜色的区分度下降,色彩空间多维度信息没有有效利用,所以一般会对Lab色彩空间的三个维度同时量化生成 颜色值,然后再根据频次优化出现的颜色值范围。确保这些颜色值可以覆盖95%以上的像素点。

f5afb5fa1d818ac602add1720fa26d74.png

尽管我们可以通过建立直方图使用色彩空间量化的方法加速全局对比度的计算,但是量化色彩空间本身就是人为的,有可能把相似的颜色量化成不同的值,为了减少这种现象导致显著性噪声出现,所以对得到显著性值最后完成一个模糊操作,这种模糊操作选择线性模型,距离当前显著性值最近的有最大权重值:

b74962fa8d9c55219dcdb8c979a782a8.png

RC详解

除了对比度之外,区域与空间关系在显著性检测中也扮演重要作用,高对比邻近周围通常是显著性区域一个很强的证据,HC是计算像素级别的显著性值,计算开销比较大,基于区域对比度分析的显著性检测通过定义每个区域与其他区域的相似度权重得到区域显著性值,完成显著性检测。RC做法需要首先生成区域,作者在论文中通过基于图的图像分割得到很多图像区域,对一个区域计算显著性值:

5efa86923035fcf9fed43066bbe39e78.png

9e042776a6766ca82ea133d5890f9558.png

实验与应用

实验结果

各种不同的图像显著性检测对比

0fd76960b3817430ce8c9c72098f5117.png

显然HC与RC的效果比较好,在相同数据集上对不同显著性测试得到召回率:

fdceee305b3e8a99f82edf5e0ffee635.png

应用:

作者给出了两个应用场景,一个是基于图像显著性检测的阈值化分割,另外一个基于显著性的图像语义分割。

17b5db02145538204d4b1550b18ecdf0.png

372ba52be39acd9f32e2a32f784bfb2a.png372ba52be39acd9f32e2a32f784bfb2a.png

往期精选

  • 线性卷积积分及其在图像增强和特效方面应用

  • OpenVINO车牌识别网络详解

  • 详解OpenCV卷积滤波之边缘处理与锚定输出

百舸争流,奋楫者先

千帆竟发,勇进者胜

【扫码关注我们】

76d372d549f298c5afaec27f1f58fd9b.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/551085.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在c51语言的程序中 注释一般采用,【判断题】在 C51 语言的程序中,注释一般采用 /* */ 和 // 来实现。 (3.0分)...

当ab<0时,化简a2b的结果是()A.-abB.a-bC.-a-bD.ab(-5)2的化简结果为()A.25B.5C.-5D.&a…

修改所有列_哪些数据库是行存储?哪些是列存储?有什么区别?

大多数数据库系统存储一组数据记录,这些记录由表中的列和行组成。字段是列和行的交集:某种类型的单个值。属于同一列的字段通常具有相同的数据类型。例如,如果我们定义了一个包含用户数据的表,那么所有的用户名都将是相同的类型&a…

函数指针定积分C语言,急!!!利用函数指针变量编写一个求定积分的通用函数,...

急!!!利用函数指针变量编写一个求定积分的通用函数,答案:4 信息版本:手机版解决时间 2021-05-05 09:17已解决2021-05-05 02:15用它分别求5个函数的定积分:每次需要求定积分的函数是不一样的。可以编写一个求定积分的通…

cordova 更改app版本_【ios马甲包cps联运】App上架难 马甲包不知道该怎么做?

专业app代上架!解决全网IOS上包难诸多问题 ,提供多类别马甲包功能包定制服务!(直播.财务.社交.生活.游戏.电商)另外提供app加速审核及好评优化服务.长期出售白包功能包!总的来说,App Store 的上架流程,主要分为 7 大步骤:1、创建证…

须使用visual c 内联汇编语言开发,在VisualC 中使用内联汇编

在VisualC 中使用内联汇编2008-04-09 04:08:57来源:互联网 阅读 ()一、内联汇编的优缺点因为在Visual C 中使用内联汇编不需要额外的编译器和联接器,且可以处理Visual C 中不能处理的一些事情,而且可以使用在C/C 中的变量,所以非常…

dockerfile 修改文件权限_网易技术实践|Docker文件系统实战

在本文中,我们来实战构建一个Docker镜像,然后实例化容器,在Docker的生命周期中详细分析一下Docker的文件存储情况和DockerFile优化策略。在开始实战之前,我们先介绍一个概念,联合文件系统(Union File Syste…

stm32c语言写数码管定时器,使用TIM1产生1秒定时控制数码管显示0-9(STM32_10)

一、项目配置1、新建项目文件夹"TimSeg";2、通过Keil5创建新项目,保存在所创建的文件夹中(设项目名为pTimSeg),选择MCU芯片为"STM32F103ZE"(本程序使用的硬件为:STM32-PZ6806L开发板)3、在"TimSeg"…

pandas自动创建文件夹_pandas快速入门

pandas有两类数据对象:dataframe和series。Series是一个带标签的一维数组,通常索引在左,值在右。dataframe是一个带标签的二维数组,可以理解成series的字典,共用索引标签。重点记录dataframe的相关用法:一.…

小数分数转换c语言,这是把小数转换成分数的程序,可是输入0.6666无限循环

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼#include int main(){double a;scanf("%lf", &a);输入小数int b, c 0, d 0;double b1 a;do{b1 *10;b (int)b1;printf("%d\n", b);if(b%10!0){c;if(d>0){c d;d 0;}}else{d;}}while(d<5);printf("…

血栓清道夫机器人_血栓“清道夫”找到了!木耳排第三,排在第一很多人都并不知道...

当血液中出现大量的血栓&#xff0c;很容易堵塞血管&#xff0c;多处血栓&#xff0c;主要是由于血液中积聚了大量的脂类物质&#xff0c;沉积在血管内壁上形成的&#xff0c;而日常生活中不良的饮食习惯则会加剧我们血液的粘稠程度&#xff0c;大量的直流物质&#xff0c;更容…

for循环c语言流水灯,巧用数组与for循环为流水灯程序瘦身

数组——一种储存大量同性质数据的连续存储器空间a [6];b [] {2&#xff0c;4&#xff0c;8&#xff0c;3&#xff0c;6};c[6] {1&#xff0c;2&#xff0c;3&#xff0c;4&#xff0c;5&#xff0c;6};char d[6] "hello";以上方式均是数组创建的常用方式~数组是从…

java的map 使用string数组多了双引号_奥奥奥利给!!!再也不怕面试官问我String源码了!来吧...

简述字符串广泛应用 在 Java 编程中&#xff0c;在 Java 中字符串属于对象&#xff0c;Java 提供了String 类来创建和操作字符串。字符串缓冲区支持可变字符串。因为String对象是不可变的&#xff0c;因此可以共享它们。String类代表字符串&#xff0c;Java程序中的所有字符串字…

C 语言 运算符怎么使用,详解C++编程中运算符的使用

C的运算符十分丰富&#xff0c;使得C的运算十分灵活方便。例如把赋值号()也作为运算符处理&#xff0c;这样&#xff0c;abc4就是合法的表达式&#xff0c;这是与其他语言不同的。C提供了以下运算符&#xff1a;算术运算符(加) -(减) *(乘) /(除) %(整除求余) (自加) --(…

面积积分_袁颖妍:用定理积分求平面区域面积(有代表性的9个例题)

考研竞赛智慧e数学的广告&#xff1a;鸡汤所谓“理解”&#xff0c;所谓“智商”&#xff0c;本质上最终都归到"记忆",还有一点就是能够发现自己“记忆”中各个零散的知识点的关系。所谓“智商”高低的人&#xff0c;其实是强化这些“记忆”的能力的不同&#xff0c;…

vip会员管理系统c语言,路西牌会员管理系统。

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼void VIP::show( Node *v){no(v);char *aVIP::sex(v);std::cout<<< "会员姓名: "<< node.item.num[1]<< endl<< "性别: "<< sex(v)<<< "手机号码: "<…

字体选择_十分钟带你掌握精准选择字体的方法!

文章序言&#xff1a;上次记得有粉丝评论需要讲讲字体&#xff0c;今天就给大家带来一期关于&#xff0c;如何快速选择合适的字体的文章&#xff0c;帮助大家以后把字体用对&#xff0c;用好&#xff0c;用准。在讲这个字体的时候会结合实际的案例操作给大家讲解&#xff0c;这…

c语言输出行末不得有多于空格,新人提问:如何将输出时每行最后一个空格删除...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼如何将每行最后一个空格删除&#xff0c;使矩阵只有数字间有空格&#xff0c;没有多余空格&#xff1f;#include#includeint main(){int i,j,k,m,n,x,h,y;int a[15][15]{0};while(scanf("%d",&i)){k1;for(n1;n<i;…

php对象数组转数组_php 数组对象互相转换

有时候会遇到php中对象和数组之间的互相转换/*** 将对象转换为多维数组***/function objectToArray($d) {if (is_object($d)) {// Gets the properties of the given object// with get_object_vars function$d get_object_vars($d);}if (is_array($d)) {/** Return array con…

linux 查看neihe版本_linux查看系统内核版本号

查看系统内核有三种方法&#xff1a;第一种方法&#xff1a;[rootlocalhost nginx]# uname -aLinux localhost.localdomain 2.6.32-696.30.1.el6.i686 #1 SMP Tue May 22 02:54:00 UTC 2018 i686 i686 i386 GNU/Linux第二种方法&#xff1a;uname -r[rootlocalhost nginx]# una…

android自动生成cardview,学习使用Material Design控件(三)使用CardView实现卡片效果...

本文主要介绍CardView的使用&#xff0c;CardView是继承自FrameLayout&#xff0c;使用比较简单&#xff0c;只需要用CardView包含其他View就可以实现卡片效果了。实现效果如下&#xff1a;加入依赖库dependencies {….compile com.android.support:cardview-v7:22.2.0}Layout布…