精华内容
下载资源
问答
  • 像素区域合并

    2017-03-16 12:59:05
    本工具为超像素区域合并的学术版软件,免费使用。
  • 像素合并分割

    2018-10-30 20:45:39
    像素合并分割,只要运行文件夹下面的Demo_Matlab.m即可,亲测有效
  • 亲测可用的SRM分割算法,可用于图像分割(超像素分割)
  • 针对岩屑颗粒密集和颗粒表面纹理复杂的特点,提出一种基于熵率超像素分割和区域合并的分割方法。熵率超像素分割将图像分为一系列紧凑的、具有区域一致性的区域,不仅边缘定位准确且降低图像计算的复杂度;针对存在的过...
  • 对图像进行区域分割,把图像分割成一个个区域,并进行区域合并
  • 4个像素合并成1个像素 resample 实际上是用arcengine 对影响进行重采样的操作
  • 主要介绍了python使用PIL和matplotlib获取图片像素点并合并解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • 超像素分割与超像素合并/区域合并/多尺度分割

    万次阅读 多人点赞 2014-05-14 11:19:40
    最近两年,超像素分割

         最近两年,超像素分割方法非常火爆,计算机视觉、模式识别许多方向都兴起了超像素研究的热潮,提出的方法也比较多。其实这不是个什么新鲜的东西,以前的许多分割算法所获得的结果都可以称为超像素,如Watershed,meanshift,graph-based segmentation,只不过后来兴起一种加入形状约束,使得到的区域如同细胞一般比较紧凑。个人觉得这对某些应用还是有一些好处的,比如这些小区域排列规整,可以把以前基于像素的方法改造改造加以应用,统计特征比较好保持等。

        鉴于最近总有一些朋友在问超像素合并怎么弄?原因其实很简单,超像素分割的代码很多都已经被公开了,没有技术含量,应用又做不来,找个相对容易入手点儿的。总结一下目前常用的超像素分割方法,以及基本的区域合并方法,希望对感兴趣的朋友们有用。

    1、超像素分割方法

          常见的超像素分割方法:TurboPixel,SLIC,NCut,Graph-based,Watershed(Marker-based Watershed),Meanshift等等, 这里列举几种我常用的方法及其效果


    需要指出的是,其实分水岭方法效果非常好的,在TurboPixel那个文章中实现的分水岭方法绝对有问题。真实的效果绝对不是那个样子。


          算法的效率:这个是本人比较关心的问题,因为是个急性子,等不得程序跑半天出不来结果。这也是为什么上面只列举了4种方法(其实还有些效果非常好的方法,只是自己想的,没有参考文献),因为有些方法效率太低,比如TurboPixel,NCut什么的,等得让我难受死。整体而言,在效率方面,以上四种方法都非常好,处理481*321的图像只需要0.15 s左右(笔记本i7 4500U, 2.1Ghz),对较大的影像效率也非常好。 经典的Turbopixel, NCut什么的在效率上被甩了N条街了....

          个人建议:如果非常看重紧凑度,选择NCut和SLIC;非常看重效率,SLIC和Watershed;非常看重边缘精确度和后期区域合并效果:Marker-based Watershed 和 Meanshift。 如果你仅仅是止步于超像素层次,就开始应用了,那么选择SLIC吧,速度,紧凑度都非常好;如果要做后面的区域合并,SLIC不一定拼得过后面三种方法。


    2、区域合并方法


            区域合并基本方法:区域合并是实现比较精细的分割重要方法,常采用的方法可以是层次区域合并(Hierarchical Stepwise Region Merging),也可以是简单的剔除小区域(EDISON源码里面的Prune函数)。层次区域合并虽已提出多年,但仍然是顶尖的方法(K. Harris, 1998, IEEE TIP, Hybrid image segmentation using watershed and fast region merging),这个文章里面提及了区域邻接图(Region Adjacent Graph, RAG)和最近邻域图(Nearest Neighbor Graph,NNG)的概念,非常清晰明了。虽然后来有些人对RAG和NNG翻译了一下,在中文期刊上发表了不少文章,其实都是简单的实现了一遍,翻译了一下。在我看来没有啥创新,不过大家可以搜搜看,作为学习的参考。对这些方法的改进提了一些,但是有些是站不住脚的,仅仅是因为编程水平有限,没有把别人的方法实现好,以此却说别人的方法效率低。具体我就不点出来了。


    RAG和NNG记录区域合并一个简单的示例




    区域合并的代价:最早,区域合并是问题的数学解释其实是分片的影像拟合(Jean-Marie Beaulieu,1989, IEEE TPAMI, Hierarchy in Picture Segmentation: A Stepwise Optimization Approach ),每次的区域合并都会带来整个拟合误差的增加,这个增加量称之为合并代价,在图2中表现为,图的每条边都是有权重的,这个权重就表示这两个区域合并对整个图像拟合误差带来的增加量,具体的推导参见原文吧。

                                                                                         

    其中N表示面积,μ表示区域的光谱平均值,这个合并代价后来又衍生出了很多版本,这个是大家关注的重点。比如把(μi-μj)2换成光谱直方图距离的,加入形状约束的,加入纹理约束的等等。这个选择取决于你处理的图像是啥,比如对于SAR图像,可能得更多的考虑统计特性,对于高光谱的遥感影像,得考虑光谱曲线相似性等。因为个人是研究遥感图像处理的,对于普通的遥感图像,自然影像,推荐Multi-resolution, object-oriented fuzzy analysis of remote sensing data for GIS-ready information这篇文章中的准则,主要是其适应性比较好,比较稳定。(顺便打个小广告:A Spatially-Constrained Color-Texture Model for Hierarchial VHR Image Segmentation,其实效果也很好,不过稍慢一些,毕竟模型复杂很多)。以下是两者准则下的效果:


    通过对比就可发现了,其实SLIC对于区域合并而言,效果一般。其实在当前流行的超像素分割中,SLIC已经算好的了,其他的方法效果相比真是没法看了....

    算法效率:如果按照原版的RAG和NNG实现,速度非常快的,关键看你技术水平怎么样了,具体实现非常麻烦,我用到了RBTree这样的结构,如果有用C++编程实现该功能的看官,可以考虑下什么地方可以用这个优化下。在我实现的版本里,对于481*321的图,采用以上超像素分割方法和推荐的合并准则,对于约700个初始区域,包括读取影像,区域合并,保存结果,花费0.236s,1200个初始区域 0.26s,更极端的,154401个初始区域(1个像素1个区域),花费2.1s,用我那个相比复杂一点的准则,时间略多一些,大概是前一组实验的2.5倍时间。 2.1s合并掉15W个区域,速度其实已经满足绝大多数的计算机视觉和模式识别中的图像处理需求了,如果进行并行可以实现近乎实时了。


    3、区域合并的终止/尺度选择


    何时终止区域合并的过程?这是研究的热点之一。常用的方法是设定一个阈值,当合并的代价值超过给定的阈值时,合并终止。然而一个重要的问题是,这个值常常需要手动设置。这无法实现对不同影像的精确分割。

    在遥感图像处理领域,可以称之为尺度选择,有一些自动尺度选择的方法,大家可以搜索一下 “分割 最优尺度选择”,如:ISPRS Journal上发表的Unsupervised image segmentation evaluation and refinement using a multi-scale approach这都是采用了全局同质性和异质性来度量分割质量的方法,文章虽然是发表了,但经过我的测试该方法也仅仅只能在特定的软件(eCognition)和算法环境下可用,且对于许多影像,效果不行。当用这个策略来确定区域合并停止阈值时,很多时候会失败。是失败,而不是效果不好。因为在某些情况下按照这个准则,区域合并一开始就应该停止。 (许多中文文章跟这个是换汤不换药)。 还有IJGIS上的一篇文章 ESP: a tool to estimate scale parameter for multiresolution image segmentation of remotely sensed data,虽然引用比较多,但是最终还是有人敢于说实话(在这篇文章中:Semiautomatic Object-Oriented Landslide Recognition Scheme From Multisensor Optical Imagery and DEM Jiann-Yeou Rau, Jyun-Ping Jhan, and Ruey-Juin Rau),这玩意儿纯属扯淡!IJGIS这么牛叉的期刊怎么登了这么一篇水文?


    言归正传,这块儿,个人仅限于对遥感图像处理领域有些了解,可能在计算机视觉和模式识别中的很多方法不知道。在此,仅推荐一个比较简单,但是有效的方法。借助于ISPRS Journal那篇文章的方法,你可以计算初始分割和每次合并之后的 Global Homogeneity,依次合并得到一个序列,直到所有的可能的合并进行到底(只剩下一个1个区域了),这时候你就可以得到一条Global Homogeneity演化的曲线,大概如下(红线),那么把最低点和最高点连成直线,计算所有点到这条直线的距离,距离最大的点就是区域合并该停止的点。 这个只能保证你得到一个比较好的结果,但是对于很多计算机视觉的应用,大概已经足够了。至于更好的方法,暂时还不太适合公开...


    什么?都合并完了才来找该在哪儿停止? 是的,有时候往往就是这样曲折。但是你也不必重新执行一遍区域合并的,只需要把之前的区域合并顺序重新遍历一遍,找到停止点,把结果反算出来就OK了。



    4、更多的思考

         (a) 你研究超像素干嘛的?不要一味追求当前的所谓超像素....

         (b) 你确定你真的是改进了当前的方法?还是仅仅没有阅读足够的资料,说不定别人已经做过了,或者你编程实现能力太弱了....

         (c) 路在何方? 这个领域可以研究的还是比较多的,区域合并准则、停止条件(尺度选择)、多尺度层次关系组织、应用等都还有许多进步的空间。对于遥感影像,还需要解决超大影像并行快速处理,比如给你一个20W*20W像素大小的图像,可能一幅图像就有100G,你怎么办?

         (d) 超像素的合并方法提供了丰富的层次结构信息,你用上了么?

         (e) 这些东西咋用啊? 遥感图像分类、目标识别、场景分类、显著性检测、目标提取等等等等等...具体咋样看情况..

         (f) 文献推荐: Scale-Sets image Analysis, IJCV,2006,个人认为可能会是该领域后续许多问题的指导思想之一。


    有关超像素的代码,请参考:http://blog.csdn.net/anshan1984/article/details/8918167


    学术交流QQ群: 217312431



    展开全文
  • 面向低抖动GPU像素Cache的像素合并缓冲技术.pdf
  • 该方法利用k-means算法将图像细分为大量均匀同质类似单元格的小区域,使用互惠最近邻聚类算法以区域面积为约束条件在小范围搜寻互惠最近邻进行合并,从而生成超像素。通过实验与SLIC(simplelineariterativeclustering)...
  •  最近两年,超像素分割方法非常火爆,计算机视觉、模式识别许多方向都兴起了超像素研究的热潮,提出的方法也比较多。其实这不是个什么新鲜的东西,以前的许多分割算法所获得的结果都可以称为超像素,如Watershed,...
     
    

         最近两年,超像素分割方法非常火爆,计算机视觉、模式识别许多方向都兴起了超像素研究的热潮,提出的方法也比较多。其实这不是个什么新鲜的东西,以前的许多分割算法所获得的结果都可以称为超像素,如Watershed,meanshift,graph-based segmentation,只不过后来兴起一种加入形状约束,使得到的区域如同细胞一般比较紧凑。个人觉得这对某些应用还是有一些好处的,比如这些小区域排列规整,可以把以前基于像素的方法改造改造加以应用,统计特征比较好保持等。

        鉴于最近总有一些朋友在问超像素合并怎么弄?原因其实很简单,超像素分割的代码很多都已经被公开了,没有技术含量,应用又做不来,找个相对容易入手点儿的。总结一下目前常用的超像素分割方法,以及基本的区域合并方法,希望对感兴趣的朋友们有用。

    1、超像素分割方法

          常见的超像素分割方法:TurboPixel,SLIC,NCut,Graph-based,Watershed(Marker-based Watershed),Meanshift等等, 这里列举几种我常用的方法及其效果


    需要指出的是,其实分水岭方法效果非常好的,在TurboPixel那个文章中实现的分水岭方法绝对有问题。真实的效果绝对不是那个样子。


          算法的效率:这个是本人比较关心的问题,因为是个急性子,等不得程序跑半天出不来结果。这也是为什么上面只列举了4种方法(其实还有些效果非常好的方法,只是自己想的,没有参考文献),因为有些方法效率太低,比如TurboPixel,NCut什么的,等得让我难受死。整体而言,在效率方面,以上四种方法都非常好,处理481*321的图像只需要0.15 s左右(笔记本i7 4500U, 2.1Ghz),对较大的影像效率也非常好。 经典的Turbopixel, NCut什么的在效率上被甩了N条街了....

          个人建议:如果非常看重紧凑度,选择NCut和SLIC;非常看重效率,SLIC和Watershed;非常看重边缘精确度和后期区域合并效果:Marker-based Watershed 和 Meanshift。 如果你仅仅是止步于超像素层次,就开始应用了,那么选择SLIC吧,速度,紧凑度都非常好;如果要做后面的区域合并,SLIC不一定拼得过后面三种方法。


    2、区域合并方法


            区域合并基本方法:区域合并是实现比较精细的分割重要方法,常采用的方法可以是层次区域合并(Hierarchical Stepwise Region Merging),也可以是简单的剔除小区域(EDISON源码里面的Prune函数)。层次区域合并虽已提出多年,但仍然是顶尖的方法(K. Harris, 1998, IEEE TIP, Hybrid image segmentation using watershed and fast region merging),这个文章里面提及了区域邻接图(Region Adjacent Graph, RAG)和最近邻域图(Nearest Neighbor Graph,NNG)的概念,非常清晰明了。虽然后来有些人对RAG和NNG翻译了一下,在中文期刊上发表了不少文章,其实都是简单的实现了一遍,翻译了一下。在我看来没有啥创新,不过大家可以搜搜看,作为学习的参考。对这些方法的改进提了一些,但是有些是站不住脚的,仅仅是因为编程水平有限,没有把别人的方法实现好,以此却说别人的方法效率低。具体我就不点出来了。


    RAG和NNG记录区域合并一个简单的示例




    区域合并的代价:最早,区域合并是问题的数学解释其实是分片的影像拟合(Jean-Marie Beaulieu,1989, IEEE TPAMI, Hierarchy in Picture Segmentation: A Stepwise Optimization Approach ),每次的区域合并都会带来整个拟合误差的增加,这个增加量称之为合并代价,在图2中表现为,图的每条边都是有权重的,这个权重就表示这两个区域合并对整个图像拟合误差带来的增加量,具体的推导参见原文吧。

                                                                                         

    其中N表示面积,μ表示区域的光谱平均值,这个合并代价后来又衍生出了很多版本,这个是大家关注的重点。比如把(μi-μj)2换成光谱直方图距离的,加入形状约束的,加入纹理约束的等等。这个选择取决于你处理的图像是啥,比如对于SAR图像,可能得更多的考虑统计特性,对于高光谱的遥感影像,得考虑光谱曲线相似性等。因为个人是研究遥感图像处理的,对于普通的遥感图像,自然影像,推荐Multi-resolution, object-oriented fuzzy analysis of remote sensing data for GIS-ready information这篇文章中的准则,主要是其适应性比较好,比较稳定。(顺便打个小广告:A Spatially-Constrained Color-Texture Model for Hierarchial VHR Image Segmentation,其实效果也很好,不过稍慢一些,毕竟模型复杂很多)。以下是两者准则下的效果:


    通过对比就可发现了,其实SLIC对于区域合并而言,效果一般。其实在当前流行的超像素分割中,SLIC已经算好的了,其他的方法效果相比真是没法看了....

    算法效率:如果按照原版的RAG和NNG实现,速度非常快的,关键看你技术水平怎么样了,具体实现非常麻烦,我用到了RBTree这样的结构,如果有用C++编程实现该功能的看官,可以考虑下什么地方可以用这个优化下。在我实现的版本里,对于481*321的图,采用以上超像素分割方法和推荐的合并准则,对于约700个初始区域,包括读取影像,区域合并,保存结果,花费0.236s,1200个初始区域 0.26s,更极端的,154401个初始区域(1个像素1个区域),花费2.1s,用我那个相比复杂一点的准则,时间略多一些,大概是前一组实验的2.5倍时间。 2.1s合并掉15W个区域,速度其实已经满足绝大多数的计算机视觉和模式识别中的图像处理需求了,如果进行并行可以实现近乎实时了。


    3、区域合并的终止/尺度选择


    何时终止区域合并的过程?这是研究的热点之一。常用的方法是设定一个阈值,当合并的代价值超过给定的阈值时,合并终止。然而一个重要的问题是,这个值常常需要手动设置。这无法实现对不同影像的精确分割。

    在遥感图像处理领域,可以称之为尺度选择,有一些自动尺度选择的方法,大家可以搜索一下 “分割 最优尺度选择”,如:ISPRS Journal上发表的Unsupervised image segmentation evaluation and refinement using a multi-scale approach这都是采用了全局同质性和异质性来度量分割质量的方法,文章虽然是发表了,但经过我的测试该方法也仅仅只能在特定的软件(eCognition)和算法环境下可用,且对于许多影像,效果不行。当用这个策略来确定区域合并停止阈值时,很多时候会失败。是失败,而不是效果不好。因为在某些情况下按照这个准则,区域合并一开始就应该停止。 (许多中文文章跟这个是换汤不换药)。 还有IJGIS上的一篇文章 ESP: a tool to estimate scale parameter for multiresolution image segmentation of remotely sensed data,虽然引用比较多,但是最终还是有人敢于说实话(在这篇文章中:Semiautomatic Object-Oriented Landslide Recognition Scheme From Multisensor Optical Imagery and DEM Jiann-Yeou Rau, Jyun-Ping Jhan, and Ruey-Juin Rau),这玩意儿纯属扯淡!IJGIS这么牛叉的期刊怎么登了这么一篇水文?


    言归正传,这块儿,个人仅限于对遥感图像处理领域有些了解,可能在计算机视觉和模式识别中的很多方法不知道。在此,仅推荐一个比较简单,但是有效的方法。借助于ISPRS Journal那篇文章的方法,你可以计算初始分割和每次合并之后的 Global Homogeneity,依次合并得到一个序列,直到所有的可能的合并进行到底(只剩下一个1个区域了),这时候你就可以得到一条Global Homogeneity演化的曲线,大概如下(红线),那么把最低点和最高点连成直线,计算所有点到这条直线的距离,距离最大的点就是区域合并该停止的点。 这个只能保证你得到一个比较好的结果,但是对于很多计算机视觉的应用,大概已经足够了。至于更好的方法,暂时还不太适合公开...


    什么?都合并完了才来找该在哪儿停止? 是的,有时候往往就是这样曲折。但是你也不必重新执行一遍区域合并的,只需要把之前的区域合并顺序重新遍历一遍,找到停止点,把结果反算出来就OK了。



    4、更多的思考

         (a) 你研究超像素干嘛的?不要一味追求当前的所谓超像素....

         (b) 你确定你真的是改进了当前的方法?还是仅仅没有阅读足够的资料,说不定别人已经做过了,或者你编程实现能力太弱了....

         (c) 路在何方? 这个领域可以研究的还是比较多的,区域合并准则、停止条件(尺度选择)、多尺度层次关系组织、应用等都还有许多进步的空间。对于遥感影像,还需要解决超大影像并行快速处理,比如给你一个20W*20W像素大小的图像,可能一幅图像就有100G,你怎么办?

         (d) 超像素的合并方法提供了丰富的层次结构信息,你用上了么?

         (e) 这些东西咋用啊? 遥感图像分类、目标识别、场景分类、显著性检测、目标提取等等等等等...具体咋样看情况..

         (f) 文献推荐: Scale-Sets image Analysis, IJCV,2006,个人认为可能会是该领域后续许多问题的指导思想之一。


    有关超像素的代码,请参考:http://blog.csdn.net/anshan1984/article/details/8918167

    展开全文
  • 图像融合算法(像素级)

    万次阅读 多人点赞 2019-10-25 09:26:06
    像素级融合是常用于灰度图像与可见光图像的融合。基于源图像的彩色化就是源图像和目标图像的融合过程,使其同时兼有源图像的颜色和目标图像的形状、纹理等特征信息,达到整体颜色基调和谐、真实。 影响图像融合的...

    图像融合技术可以提取自然光图像和红外图像的互补信息,获得对同一场景描述解释更为准确、全面和可靠的图像。像素级融合是常用于灰度图像与可见光图像的融合。基于源图像的彩色化就是源图像和目标图像的融合过程,使其同时兼有源图像的颜色和目标图像的形状、纹理等特征信息,达到整体颜色基调和谐、真实。

    影响图像融合的主要因素:图像庞大数据量的处理、融合规则的选择等。

    关于图像融合技术的应用研究,主要集中在夜视图像中微光图像和红外图像的彩色处理。

     

    根据融合过程处理阶段的不同,红外图像和可见光图像的融合可以分为三个阶段:基于像素层面的融合、基于特征层面的融合和基于决策层面的融合

    像素级融合是一种比较底层的融合方式,融合前一般先对可见光和红外数据进行配准等预处理操作,然后将红外图片和可见光图片对应的各点像素值通过一定的策略合并计算出一个新的像素值,这样各点像素都进行融合后形成一幅新的融合图像。这种层面的融合方式对应设备的要求较高,一般计算量较大,不适合实时性需求。基于空间域的融合方法和基于变换域的融合方法是常用的像素级图像融合手段。

    其中空间域融合方法包括:逻辑滤波法、加权平均法、数学形态法、图像代数法和模拟退火法等。

    变换域方法包括金字塔图像融合法、小波变换图像融合法和多尺度分解法等。

    1.MCA

    图像分离技术是基于对图像进行多尺度分析的方法,在图像的分析、增强、压缩、复原等领域有效的信号和图像分解分离技术起着重要的作用。目前,研究者提出了很多方法来解决这个问题,实验结果并不完全理想。数字图像分离处理主要是通过利用信号和图像的成分来对信号和图像进行分析,主要有主成分分析、次成分分析、态成分分析等,人们认为,主要在信号重构和压缩、以及稀疏成分分析和独立成分分析、形抑制噪声和特征提取等方面的应用。所得到的图像观测值是由不同的源信号的混合信号。以线性瞬时信号为例,它是最简单的混合数学模型,为求解混合过程的逆过程,达到把不同的源信号分离出来的目的,即根据某些假设条件,已知的先验信息很少的情况下,我们仅仅从获得的混合信号中提取或恢复出源信号来。

    独立成分分析方法是经典的方法,它假设源信号是独立统计的。目前,基于统计独立的假设条件,就像任何一种优秀的算法,有其适合的范围,但也比其他方法得到了较好的实验效果。在从现实应用而获得图片中,很多信号具有稀疏性,很多图像也具有稀疏性,人们也可以通过对这些信号和图像处理达到稀疏性,选择进行数学变换,达到其在变换域中能够得到实现较好的稀疏性的目标。事实论文表明把数据转换为稀疏表示,会极大提高分离的质量。当源信号是高度稀疏时,也就是说每个源信号在绝大多数的时刻取值为零或者接近零,只有在很少的时刻取值为非零或者较大值。此时,源信号可以由不同的基函数来表示,因为在独立假设中,两个源信号同时为有用信号的概率极低。在稀疏成分分析,中,就巧妙地利用了这一点进行分析。独立分量分析、稀疏成分分析,、非负矩阵分解等是近年来兴起的算法,都取得了较大进展。

    Strack等人开辟了新的道路,他们提出了另外一种基于稀疏表示的对信号或图像进行分解的方法,形态成分分析MCA。该方法的思想是,在图像处理中,对于待分离图像中的任一形态,假设都存在着相应稀疏表示该层的字典,并且仅能够稀疏表示该层形态第二步,我们使用追踪算法以达到搜索最稀疏的表示的目的,产生符合研究目的的相对理想的分离效果。

    形态成分分析,可以看成BP和MP算法的结合。方法核心用最优稀疏表示图像形态。图像分解成两个不同的形态卡通纹理分量。卡通分量包含了原图像的结构和轮廓信息,纹理分量包含了一些重复性的纹理信息。对于图像的卡通分量来说,其主要体现的是图像的一些结构信息和色彩信息,而人眼对应这类信息往往比较敏感的;同时,自然图像的卡通分量往往体现了原始图像中的大量的主要信息,因此融合卡通分量的目的是使这类信息更为突出。

    2.RPCA

    鲁棒主成分分析(Robust Principal Component Analysis,RPCA)是低秩矩阵恢复模型,已经在视频监控,计算机视觉等许多领域得到广泛应用。RPCA 可将数据矩阵表示为低秩矩阵和稀疏矩阵的叠加。早期已有研究者将其应用于多焦点图像融合源图像经 RPCA 分解之后得到源图像的稀疏矩阵和低秩矩阵。稀疏矩阵表示图像的显著特征,低秩矩阵包含图像的细节纹理等背景信息。分别融合后发现融合效果目标信息显著,效果较好。红外图像与可见光图像融合的主要目的是通过融合可以得到一幅兼具两幅图像特点的融合结果。融合图像中包含源图像的光谱信息隐藏目标可以更好的显示。目标物在图像中较为显著,因此会更有利于后续的应用。红外图像是一种热辐射成像,图像中的目标热源部分会非常突出,灰度值明显高于其他区域。

    源图像经过 RPCA 变换后得到稀疏分量和低秩分量,分别表示不同的图像信息。在红外图像中,显著区域是相对背景比较突出的一部分图像内容。因此,稀疏分量的特征可以描述源图像的目标等显著信息,低秩矩阵建模为红外图像的主要背景信息。NSCT 作为一种多尺度变换,它可以多分辨率多方向的分解提取图像的信息。所以采用 NSCT 变换的方法融合源图像的低秩分量可以更好得到目标图像的低秩分量。在得到融合之后的低秩分量和稀疏分量后通过叠加可以得到融合结果。

    3.稀疏表示

    近年来,通过研究脑神经发现,当有信号(图像、声音等)刺激大脑时,人类大脑只利用一小部分神经元对输入的信号进行表示,既只提取了信号的关键特征,对冗余复杂的信号进行了简单的表示。学术界将人类大脑的这一功能特征称为稀疏表示。稀疏表示理论的主要思想是利用少量的字典原子来线性描述自然信号。由于其能很好的稀疏表示自然图像,因此近年来稀疏表示已经被广泛地应用于各个领域。

    传统的稀疏基包括 FT、DCT和 DWT等。近些年,多尺度几何分析引起了大量学者和专家的关注。多尺度几何分析与小波变换不同,为了能较好地利用原函数的几何正则性,其变换基由小波变换中的“正方形”转 化为“长条形”,从而可以用最少的稀疏系数来逼近奇异曲线。因此,多尺度几何分析方法可以很好地表示原始图像的轮廓、边缘和纹理等拥有高维奇异性的几何特征。自多尺度几何分析方法被提出以来,已有大量的学者和专家对其理论和算法进行了深入的研究,且已有了一定可观的研究成果。

    目前为止,多尺度几何分析方法主要可以分为两大类:自适应和非自适应多尺度几何分析方法。自适应多尺度几何分析方法是指图像变换的基函数随着图像内容的变化而变化,其主要有条带波(Bandelet)、楔形波(Wedgelet)、梳状波(Brushlet)、子束波(Beamlet)等。与此相反,非自适应多尺度几何分析方法的图像变换的基函数是固定不变的,与图像的内容并无直接的关系,主要有曲线波(Curvelet)、 轮廓波(Contourlet)和脊波(Ridgelet)等。

    在多尺度几何分析之后,基于字典训练的稀疏表示方法吸引了大量学者和专家的研究。由于字典训练方法具有自适应性,因此其在图像融合、图像去噪和图像压缩等领域得到了广泛的应用,目前主流的字典训练算法有 MOD和 K-SVD等。 由于稀疏表示模型能有效地表示图像的本质特征,稀疏表示理论在图像处理领域得到了快速的发展,在图像识别、图像去噪、图像复原等领域中得到了广泛的应用。

    2008 年,Wright 和 Yang等人提出了基于稀疏表示的分类方法,并将其应用于人脸识别中,该方法可有效地解决光照、表情、部分伪装、遮挡、腐蚀等问题,并具有较好的鲁棒性,他们为人脸识别技术的发展开辟了新的道路。在此基础上,Yuan等人提出了一种基于联合稀疏表示的图像分类方法,该方法分别将图像分解为颜色、轮廓、纹理等信息,然后利用联合稀疏公式求其联合稀疏系数,由此提高了分类的准确度。除此之外,稀疏表示理论在图像去噪中也得到了较好的应用。Elad[等人利用原始噪声图像作为训练样本,然后通过 K-SVD 算法训练得到过完备字典,并在图像去噪上取得了较好的效果。同时,Fadilil等人也将稀疏表示理论应用到图像修复中,该方法利用图像的稀疏性,可以较好的修复受损的图像。在此领域中,Mairal和 Peyre等人也分别相继提出了基于字典训练的彩色图像修复和图像纹理的生成算法。 

    稀疏表示理论在图像融合领域也得到了广泛的关注与应用。Yang 和 Li等人提出了一种基于稀疏表示的图像融合算法。该算法提出了利用滑动窗技术,将待融合图像分块,并利用L1范数对其进行稀疏表示得到稀疏系数,然后利用最大选择融合规则对其进行融合,最后重构得到融合图像。在此基础上,Yang 和 Li等人又提出了基于 SOMP (Simultaneous Orthogonal Matching Pursuit)的图像融合算法,利用该算法可以保证不同的待融合图像可以利用相同的原子进行稀疏表示,从而提高了融合后的图像的质量。除此之外,Yu等人提出了一种基于联合稀疏模型的图像融合方法。在该方法中,通过稀疏分解模型,将原始图像分解为公共部分和特有部分的稀疏系数,对特有部分稀疏系数进行融合并重构,最后与公共部分组成最终的融合图像。 

     

     

    展开全文
  • 首先,利用Mean Shift算法对图像进行超像素分割,然后根据非参数贝叶斯聚类模型,融合超像素的空间信息,提出一种区域合并策略对超像素进行合并,得到了最终的分割结果。实验结果表明,MS-BRM算法改善了超像素的过...
  • 文章目录1、获取像素值然后进行修改2、获取图像的常见属性3、获取图像的感兴趣区域ROI4、图像通道的拆分、合并 1、获取像素值然后进行修改 数字图像其实就是一个数学矩阵,因此,我们可以根据像素的行列坐标来获取其...

    码字不易,请多多关注,支持,希望大家一起学习,一起进步

    1、获取像素值然后进行修改

    数字图像其实就是一个数学矩阵,因此,我们可以根据像素的行列坐标来获取其对应的像素值。在opencv里面,如果是RGB格式的图像,注意,其返回的值的顺序是B,G,R,而不是我们常见的R、G、B,如果是灰度图像,则对应的灰度值([0,255])
    代码如下:

    import cv2
    import numpy as np
    img=cv2.imread('D:/Study/Research/resource/dataset/Images/test_A.jpg',1)  # 这里换成自己的路径,具体格式可以看我之前写的opencv的文章
    cv2.namedWindow('img',cv2.WINDOW_NORMAL)
    cv2.imshow('img',img)
    cv2.waitKey(0)
    #  获取坐标是(128,128)的像素的像素值
    pl=img[128,128]
    print(pl)
    # 获取坐标(128,128)处通道B的像素值
    bl=img[128,128,0]
    print(bl)
    # 修改坐标[128,128]处的像素值
    img[128,128]=[230,230,230]
    print(img[128,128])
    
    
    

    2、获取图像的常见属性

    一般来说图像的属性有形状,像素数目,类型等,代码如下:

    import cv2
    import numpy as np
    img=cv2.imread('D:/Study/Research/resource/dataset/Images/test_A.jpg',1)  # 这里换成自己的路径,具体格式可以看我之前写的opencv的文章
    cv2.namedWindow('img',cv2.WINDOW_NORMAL)
    cv2.imshow('img',img)
    
    # shape()可以返回图像的形状,包括行列数,通道数,是一个元组
    print(img.shape)
    
    # size()可以获得像素数目
     print(img.size)
     
     # dtype()可以回去图像类型
     print(img.dtype)
    cv2.waitKey(0)
    

    3、获取图像的感兴趣区域ROI

    我们常常需要对图像中感兴趣的区域进行处理,但是,总不能一个个像素遍历搜索,那样太慢了,我们可以预估区域的位置,将其提取出来。
    比如,我这里把某部分提取出来,然后把它放到图像的其他地方,单独处理。代码如下所示:

    import cv2
    import numpy as np
    img=cv2.imread('D:/Study/Research/resource/dataset/Images/test_A.jpg',1)  # 这里换成自己的路径,具体格式可以看我之前写的opencv的文章
    cv2.namedWindow('img',cv2.WINDOW_NORMAL)
    cv2.imshow('img',img)
    s=img[156:225,260:310]
    img[120:180,230:250]=s
    cv2.waitKey(0)
    

    4、图像通道的拆分、合并

    我们可以对图像的RGB三个通道进行拆分,然后再对其进行操作。对拆分操作,我们可以使用split()函数,对合并操作,我们可以使用merge()函数,代码如下:

    import cv2
    import numpy as np
    img=cv2.imread('D:/Study/Research/resource/dataset/Images/test_A.jpg',1)  # 这里换成自己的路径,具体格式可以看我之前写的opencv的文章
    cv2.namedWindow('img',cv2.WINDOW_NORMAL)
    cv2.imshow('img',img)
    # 拆分
    b,g,r=cv2.split(img)
    # 合并
    img1=cv2.merge(b,r,g)
    cv2.imshow('img1',img1)
    cv2.waitKey(0)
    

    我们也可以直接使用numpy进行索引赋值
    (个人推荐)

    import cv2
    import numpy as np
    img=cv2.imread('D:/Study/Research/resource/dataset/Images/test_A.jpg',1)  # 这里换成自己的路径,具体格式可以看我之前写的opencv的文章
    cv2.namedWindow('img',cv2.WINDOW_NORMAL)
    cv2.imshow('img',img)
    # 获取0通道
    blue=img[:,:,0]
    cv2.waitKey(0)
    

    本次讲解完毕,欲知更多精彩内容,且听下回分解,bye~

    展开全文
  • 压缩包内分享了制作思路和使用方式。 就是加载一个图库,把你想要的目标图片,用图库里的N张图拼成一张你想要的目标图片的像素
  • 一种互惠最近邻区域合并的超像素生成方法,罗学刚,王华军,针对传统的超像素生成方法的性能受超像素数目制约,提出一种互惠最近邻区域聚类生成超像素的方法。该方法利用k-means算法将图像细��
  • 图像像素级融合 matlab

    2015-12-15 13:31:22
    像素级融合matlab代码,Brovery变换融合也称为彩色标准变换融合,它是将多光谱波段颜色(红、绿、蓝)归一化,将高分辨率影像与多光谱各波段(通常取三波段)相成完成融合。融合算法非常简单。
  • 图像分割综述

    万次阅读 多人点赞 2019-07-09 22:03:48
    区域生长是从一组代表不同生长区域的种子像素开始,接下来将种子像素邻域里符合条件的像素合并到种子像素所代表的生长区域中,并将新添加的像素作为新的种子像素继续合并过程,知道找不到符合条件的新像素为止(小编...
  • 图像通道的拆分及合并 BGR转RGB 图像扩边(边界填充) 一、获取并修改像素值 注意: Numpy 是经过优化了的进行快速矩阵运算的软件包。所以我们不推荐逐个获取像素值并修改,这样会很慢,能有矩阵运算就不要用循环。 ...
  • 今天小编就为大家分享一篇pytorch中tensor的合并与截取方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 在对已有算法分析的基础上,提出基于古典概率理论的图像生成模型,重点介绍区域合并思想与统计理论相结合的合并预测准则,该准则是逐步松弛的,确保在无像素遗漏的同时分割的精度。算法不但考虑了像素的相似性,还考虑了...
  • 图片合并自动化工具

    2019-07-25 15:52:59
    此脚本主要是将PNG根据自己需要的像素大小进行合并,有什么问题都可以联系。
  • 对图像像素的访问、通道的合并与分离(一)像素的访问在第一篇博客中,向大家介绍了,所谓的图像在计算机看来就是一个矩阵,对于RGB图像矩阵一共有三层,分别代表着RGB通道,矩阵中每一个数的大小代表着不同通道的...
  • 对高光谱图像执行基于 SLIC 超像素的降维,然后是基于 SVM 的分类,如论文中所述: X. Zhang、SE Chew、Z. Xu 和 ND Cahill,“SLIC Superpixels for Efficient Graph-Based Dimensionality Reduction of ...
  • 1.读取图像的像素值并修改 首先我们先读取一张图片 import cv2 import numpy as np img=cv2.imread(‘路径’, 1) 如果读取的是彩色图,那么img是一个三维数组,最后一位表示颜色通道,opencv采用BGR顺序 读取...
  • 以图像分割为应用背景,在广泛调研文献特别是超像素最新发展成果的基础上,结合对比实验,对每种方法的基本思想、方法特点进行总结,并对超像素分割目前存在的局限性进行说明,对未来可能发展方向进行展望。...
  • 访问和修改图像某像素点的值 函数 a=img[y,x] #获取像素点的值 img[y,x]=b #修改像素点的值 实例 import cv2 as cv import numpy as np img = cv.imread('baby.png') px = img[50,100] print(px) # output:[76,...
  • 一些桌面和手机游戏中的一些动画效果需要使用很多帧图像,通过快速轮动播放来实现,少则几帧,多则几十帧,为了方便管理图片和减少图片文件总的大小,往往需要把这些帧的图像合并到一个文件中-----即把N个大小和格式...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 59,409
精华内容 23,763
关键字:

像素被合并