提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
图像配准方法有很多,可分为基于灰度的图像配准方法和基于特征的图像配准方法,其中基于特征的图像配准方法是目前图像配准算法中常用方法,如尺度不变特征变换(Scale Invariant Feature Transform, SIFT)图像配准算法。SIFT算法利用图像的尺度空间检测特征点,采用128维描述向量对特征点进行描述,并根据特征点的描述向量进行特征点匹配。该方法对于图像的平移、旋转、光照和尺度变换具有不变性,能够很好地适用于图像配准应用。
在采用基于特征的图像配准方法将红外和可见光图像进行配准时,由于红外相机利用场景的红外辐射进行成像,使红外图像存在局部或全局对比度反转问题,导致红外图像中特征点描述和可见光图像中特征点的描述存在较大差异,无法完成与可见光图像的特征点匹配。为了解决红外图像对比度反转导致的配准失败,本文采用描述子重组策略将红外图像的特征描述进行重组,实现红外和可见光图像的特征匹配,完成了图像配准。
红外和可见光图像相机在进行图像采集时,由于两者之间的分辨率不同、相机空间位置差异及相机光轴不平行等原因,使两幅图像之间存在几何变换(平移、旋转、缩放),图像配准技术可实现红外和可见光图像空间对齐。图像配准技术可以按照某种变换模型,将待配准图像对应到参考图像中,实现图像间的匹配。
图像配准过程中,存在两幅待配准图像分辨率差异大的问题,主要是由于不同图像传感器成像阵列规模的差异导致,有两种方法对具有分辨率差异的图像进行处理,一是放大分辨率较低的图像,使其与参考图像大小相近,二是对分辨率较高的图像进行降采样处理,使其与待配准图像大小相近。通常情况下,可见光图像的空间分辨率大于红外图像,若采用方案一对红外图像进行上采样,需要对红外图像进行插值等超分辨率处理,容易造成图像边缘模糊,尤其是图像分辨率差异较大的情况下。因此,如果要将两幅分辨率差异过大的图像进行配准时,通常将高分辨率图像下采样后进行图像配准。
常用的图像配准方法有基于灰度分布的图像配准方法和基于特征的图像配准方法。基于灰度分布的图像配准方法采用某种判别依据,如互信息、归一化积相关、Hadamard变换等,来判别参考图像和待配准图像中像素灰度值的相似度。通过调整图像间的变换参数,使图像间的相似度取得极大值,完成图像配准。基于特征的图像配准方法通过提取两幅图像的特征,采用特征描述子对其进行描述,最后根据描述子的相似程度对两幅图像的特征之间进行匹配。
基于图像灰度的配准方法常用于解决参考图像和待配准图像中仅有平移或旋转变换的情形,其关键在于图像灰度匹配,要求两幅图像的灰度具有全局相关性,但红外和可见光图像中对应区域中像素灰度关系复杂,如对比度反转,因而,基于灰度的图像配准方法不适用于红外和可见光图像配准。
基于特征的图像配准方法中特征主要包括点、线(边缘)、区域(面)等,其中由于基于区域(面)特征的提取耗时较高,使用范围受限,所以基于特征的图像配准方法常提取图像的点和线特征作为配准的依据。基于线特征的图像配准方法主要是依赖于边缘检测算子提取的边缘特征,如Canny算子、Sobel算子、Robert算子等,常用于图像中轮廓清晰、背景简单的图像配准。红外和可见光图像配准时,由于红外相机的分辨率较低,导致红外图像中的细节信息丢失严重。同时,本文配准图像为基于城市复杂道路交通环境的车载成像系统采集图像,图像背景复杂,障碍物轮廓信息不明显,基于线特征的边缘检测很难实现红外和可见光图像的配准。
基于点特征的图像配准方法是基于特征的图像配准方法中最常用的方法,通过提取图像的角点,如FAST(Features from Accelerated Segment Test)角点检测,或是根据特征提取的极值点,也称为特征点,如SIFT算法,作为配准依据。该类特征通常具有尺度不变性和旋转不变性,对图像噪声的干扰有一定的抑制作用,适用于红外和可见光图像的配准。
在红外和可见光图像配准过程中,红外图像由于其传感器制造工艺等原因,存在清晰度较差、噪声明显等问题,若直接对相机采集的图像进行特征提取可能会出现特征点数量较少或特征点集中于对比度高的区域,因此,在图像配准前,采用图像预处理算法对图像进行处理,提高夜间可见光图像对比度,降低红外和可见光图像的噪声。
(1)伽马变化
(2)直方图均衡化
(3)频域变化
I = imread('火影1.jpg');
J = histeq(I);
figure;
subplot(221);imshow(I);
subplot(222);imshow(J);
subplot(223);imhist(I);
subplot(224);imhist(J);
参考博客:图像增强算法
(后期继续补充相关的增强算法代码)
(1)双边滤波
(2)引导滤波
(3)非局部均值滤波
(4)曲率滤波
(5)滑动窗口滤波
(6)。。。。
(后期继续补充相关的滤波算法代码)
SIFT算法采用128维向量对提取的特征点进行描述,导致该算法的计算量大,效率低。为了提高算法效率,本文在保证能够有效实现特征点匹配的前提下,采用奇异值分解(Singular value decomposition, SVD)的数据降维算法降低特征向量的维数,减少特征匹配的计算量。此外,在红外和可见光图像配准过程中,由于红外图像存在对比度反转问题,严重影响图像配准结果。为了解决该问题,本文采用描述子重组策略重构红外图像特征点的描述向量,使其能够与可见光图像的特征点匹配。
SIFT算法通过构建高斯差分尺度空间提取图像特征点,计算特征点周围其它像素点的梯度幅值和方向,并对其方向进行直方图统计,将直方图峰值方向作为主方向,把坐标系的x轴旋转至主方向上,保证特征点的旋转不变性,采用16个邻域区域内的像素在八个方向上的梯度方向,共128维向量对特征点进行描述。最后,采用欧式距离对特征点匹配。
SIFT图像配准算法分为三部分:特征点检测、特征点描述以及特征向量匹配,其过程主要包括:高斯金字塔建立、极值点检测、去除边缘效应、特征点主方向计算、特征描述子计算以及特征点匹配。
利用输入图像构建高斯金字塔的主要过程为,首先通过图像下采样操作,获取多组不同分辨率的图像;其次为了使每一层图像具有多个尺度特征,对每一层图像采用不同参数的高斯滤波核进行高斯模糊;最后将这些图像构成一个由下至上构建塔状结构。
高斯差分金字塔(Difference of Gaussian, DoG)利用高斯金字塔的相邻尺度图像相减获取。
将DoG尺度空间中的像素点与其周围8个相邻点,及其所在尺度的相邻尺度图像中18个点(如图2.11)进行比较,若该点均大于或均小于其它点,则将其标记为特征点。
。。。。。。。。。。。。。
后面太多了,自己查一下吧
异源图像传感器所采集到的图像在视觉方面存在较大差异,这种差异性体现在红外图像中为对比度反转现象,如图2.16中矩形框标注,可见光图像中标注的红色和绿色矩形框区域和红外图像标椎的红色和绿色矩形框为同一物体,但其在图像上的对比度完全相反。在红外和可见光图像的配准过程中,红外图像对比度反转会导致红外图像特征点描述向量的主方向和可见光图像相反,使同一个位置上应该匹配特征点无法匹配,进而导致图像配准失败。

描述子重组策略(Descriptor-Rearranging,DR)。DR策略的思想:通过对红外图像特征提取后的特征描述子进行反转,获取对比度反转描述子,而不需要对红外图像对比度反转后的图像重新进行特征提取和特征描述,减少了一次图像特征点提取,提高了图像配准速度。在红外和可见光图像特征点匹配时,同时利用反转和未反转的红外图像特征描述子与可见光图像特征描述子进行匹配,实现红外和可见光图像的配准,


。。。。。。。
本文阐述的流程可以有效实现异源图像配准。
代码稍后上传到CSDN资源,后面持续更新。。。
我想为Heroku构建一个Rails3应用程序。他们使用Postgres作为他们的数据库,所以我通过MacPorts安装了postgres9.0。现在我需要一个postgresgem并且共识是出于性能原因你想要pggem。但是我对我得到的错误感到非常困惑当我尝试在rvm下通过geminstall安装pg时。我已经非常明确地指定了所有postgres目录的位置可以找到但仍然无法完成安装:$envARCHFLAGS='-archx86_64'geminstallpg--\--with-pg-config=/opt/local/var/db/postgresql90/defaultdb/po
尝试通过RVM将RubyGems升级到版本1.8.10并出现此错误:$rvmrubygemslatestRemovingoldRubygemsfiles...Installingrubygems-1.8.10forruby-1.9.2-p180...ERROR:Errorrunning'GEM_PATH="/Users/foo/.rvm/gems/ruby-1.9.2-p180:/Users/foo/.rvm/gems/ruby-1.9.2-p180@global:/Users/foo/.rvm/gems/ruby-1.9.2-p180:/Users/foo/.rvm/gems/rub
我的最终目标是安装当前版本的RubyonRails。我在OSXMountainLion上运行。到目前为止,这是我的过程:已安装的RVM$\curl-Lhttps://get.rvm.io|bash-sstable检查已知(我假设已批准)安装$rvmlistknown我看到当前的稳定版本可用[ruby-]2.0.0[-p247]输入命令安装$rvminstall2.0.0-p247注意:我也试过这些安装命令$rvminstallruby-2.0.0-p247$rvminstallruby=2.0.0-p247我很快就无处可去了。结果:$rvminstall2.0.0-p247Search
由于fast-stemmer的问题,我很难安装我想要的任何rubygem。我把我得到的错误放在下面。Buildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingfast-stemmer:ERROR:Failedtobuildgemnativeextension./System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/rubyextconf.rbcreatingMakefilemake"DESTDIR="cleanmake"DESTDIR=
我正在编写一个方法,它将在一个类中定义一个实例方法;类似于attr_accessor:classFoocustom_method(:foo)end我通过将custom_method函数添加到Module模块并使用define_method定义方法来实现它,效果很好。但我无法弄清楚如何考虑类(class)的可见性属性。例如,在下面的类中classFoocustom_method(:foo)privatecustom_method(:bar)end第一个生成的方法(foo)必须是公共(public)的,第二个(bar)必须是私有(private)的。我怎么做?或者,如何找到调用我的cust
当我尝试安装Ruby时遇到此错误。我试过查看this和this但无济于事➜~brewinstallrubyWarning:YouareusingOSX10.12.Wedonotprovidesupportforthispre-releaseversion.Youmayencounterbuildfailuresorotherbreakages.Pleasecreatepull-requestsinsteadoffilingissues.==>Installingdependenciesforruby:readline,libyaml,makedepend==>Installingrub
我正在尝试使用boilerpipe来自JRuby。我看过guide从JRuby调用Java,并成功地将它与另一个Java包一起使用,但无法弄清楚为什么同样的东西不能用于boilerpipe。我正在尝试基本上从JRuby中执行与此Java等效的操作:URLurl=newURL("http://www.example.com/some-location/index.html");Stringtext=ArticleExtractor.INSTANCE.getText(url);在JRuby中试过这个:require'java'url=java.net.URL.new("http://www
我意识到这可能是一个非常基本的问题,但我现在已经花了几天时间回过头来解决这个问题,但出于某种原因,Google就是没有帮助我。(我认为部分问题在于我是一个初学者,我不知道该问什么......)我也看过O'Reilly的RubyCookbook和RailsAPI,但我仍然停留在这个问题上.我找到了一些关于多态关系的信息,但它似乎不是我需要的(尽管如果我错了请告诉我)。我正在尝试调整MichaelHartl'stutorial创建一个包含用户、文章和评论的博客应用程序(不使用脚手架)。我希望评论既属于用户又属于文章。我的主要问题是:我不知道如何将当前文章的ID放入评论Controller。
我有带有Logo图像的公司模型has_attached_file:logo我用他们的Logo创建了许多公司。现在,我需要添加新样式has_attached_file:logo,:styles=>{:small=>"30x15>",:medium=>"155x85>"}我是否应该重新上传所有旧数据以重新生成新样式?我不这么认为……或者有什么rake任务可以重新生成样式吗? 最佳答案 参见Thumbnail-Generation.如果rake任务不适合你,你应该能够在控制台中使用一个片段来调用重新处理!关于相关公司
首先回顾一下拉格朗日定理的内容:函数f(x)是在闭区间[a,b]上连续、开区间(a,b)上可导的函数,那么至少存在一个,使得:通过这个表达式我们可以知道,f(x)是函数的主体,a和b可以看作是主体函数f(x)中所取的两个值。那么可以有, 也就意味着我们可以用来替换 这种替换可以用在求某些多项式差的极限中。方法: 外层函数f(x)是一致的,并且h(x)和g(x)是等价无穷小。此时,利用拉格朗日定理,将原式替换为 ,再进行求解,往往会省去复合函数求极限的很多麻烦。使用要注意:1.要先找到主体函数f(x),即外层函数必须相同。2.f(x)找到后,复合部分是等价无穷小。3.要满足作差的形式。如果是加