精华内容
下载资源
问答
  • 图像配准

    千次阅读 2020-07-21 20:13:37
    图像配准的基本框架包括以下四个方面:特征空间、搜索空间、搜索策略和相似性度量。 1.特征空间 特征空间是指从参考图像和待配准图像中提取的可用于配准的特征。在基于灰度的图像配准的方法中,特征空间为图像的...

    图像配准的基本框架包括以下四个方面:特征空间、搜索空间、搜索策略和相似性度量。

    1.特征空间

          特征空间是指从参考图像和待配准图像中提取的可用于配准的特征。在基于灰度的图像配准的方法中,特征空间为图像的灰度值;而在基于特征的图像配准方法中,特征空间可以是点、边缘、曲线、不变矩等。

          特征空间的选取对图像配准有着重要的意义,因为特征空间不仅直接关系到图像中的哪些特征对配准算法敏感和哪些特征被匹配,而且大体上决定了配准算法的运行速度和鲁棒性等性能。

         理想的特征空间应满足以下几个条件:

         a)特征提取简单快捷;

         b)特征匹配运算量小;

         c)特征数据量合适;

         d)不受噪声、光照等因素影响;

         e)对各种图像均能适用。

    2.搜索空间

           搜索空间是指在配准过程中对图像进行变换的范围及变换的方式。

           图像的变换范围可以分为三类:全局的、局部的和位移场的。全局变换是指整幅图像的空间变换是都可以用相同的变换参数表示。局部变换是指图像的不同区域可以有不同的变换参数,通常的做法是在区域的关键点位置进行参数变换,在其他位置进行插值处理。位移场变换是指对图像中的每一个像素点独立地进行参数变换,通常使用一个连续的函数实现优化和约束。

           图像的变换方式可以分为线性变换和非线性变换两种形式。线性变换又可以分为刚体变换和仿射变换和投影变换。非线性变换一般使用多项式函数,如二次、三次函数及薄板样条函数,有时也使用指数函数。

    3.相似性度量

         相似性度量是衡量每次变换结果优劣的准则,用来对变换的结果进行评估,为搜索策略的下一步动作提供依据。

         相似性变换和特征空间、搜索空间紧密相关,不同的特征空间往往对应不同的相似性度量;而相似性度量的值将直接决定配准变换的选择,以及判断当前所取得变换模型下图像是否被正确匹配了。通常配准算法抗干扰得能力是由特征提取和相似性度量共同决定得。

          常用的相似性度量有互信息、归一化信息、联合熵、相关性、欧式距离、梯度互信相关等。

    4.搜素策略

          搜索策略的任务是在搜素空间中找到最优的配准参数,在搜索过程中以相似性度量的值作为判优依据。

         由于配准算法往往需要大量的运算,而常规的贪婪搜索法在实践中无法接受的,因此设计一个有效的搜索策略显得尤为重要。搜索策略将直接关系到配准进程的快慢,而搜索空间和相似性度量也在一定程度上影响了搜索策略的性能。

         常用的搜索策略有黄金分割法、Brent法、抛物线法、三次插值法、Powell、遗传算法、蚁群算法、牛顿法、梯度下降法等。

     
    ————————————————
    版权声明:本文为CSDN博主「WenJun815」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/cehnjun815/article/details/84579337

    展开全文
  • 本程序主要对遥感图像实现三种处理:几何校正、图像增强和图像配准。这三种处理都可以独立实现,然而对于原始的遥感图像将这三种处理依次进行效果更佳。
  • 基于深度学习的端到端无监督配准模型——变形图像配准网络DIRNet图像配准网络,这是一个使用 CNN 来预测控制点的网格的神经网络,这些控制点能够被用来生成根据参考图像来对待配准图像进行变形的位移矢量场。
  • 实现图像配准,两幅不同来源的数据配准,可直接运行,效果直观
  • 图像配准】基于互相关图像配准matlab源码含GUI.md
  • matlab的图像配准源码,对图像处理理解有帮助
  • 图像配准】基于Powell+蚁群算法图像配准matlab源码
  • 图像配准】基于粒子群改进的sift图像配准matlab源码.md
  • 图像配准】基于Powell+蚁群算法实现图像配准matlab源码含 GUI.md
  • 为没有先验知识的本科生开发的练习,用于学习图像配准。 使用十字架和大脑图像(单模和多模)的刚性配准的简单练习。 依赖于图像处理工具箱。 要运行图像配准练习,请使用 Matlab 浏览栏转到代码目录,使其成为您...
  • 在之前的文章中,我们分别使用了梯度下降发与LM算法来优化FFD形变的控制参数,达到图像配准的目的:图像配准系列之基于FFD形变与梯度下降法的图像配准图像配准系列之基于FFD形变与LM算法的...

    在之前的文章中,我们分别使用了梯度下降发与LM算法来优化FFD形变的控制参数,达到图像配准的目的:

    图像配准系列之基于FFD形变与梯度下降法的图像配准

    图像配准系列之基于FFD形变与LM算法的图像配准

    在本文中,我们改为使用粒子群算法来来优化FFD形变的控制参数(相似度衡量指标不变)。粒子群算法的原理,我们在之前的文章也有讲过:

    粒子群(PSO)算法的理解与应用

    梯度下降法与LM算法都是单线程的寻找最优解,而粒子群算法则不一样,其有多个解(也即多个粒子)同时进行优化,每轮迭代时都在多个粒子中记录最接近最优解的粒子,粒子群算法相当于一种多线程寻求最优解的算法。因此该算法更不容易陷入局部极值。

    同样假设FFD变换模型有r+3行c+3列的控制点,每个控制点有x方向、y方向的两个控制参数,因此总共有N=2*(r+3)*(c+3)个控制参数需要优化,也就是说,每个粒子的数据维度为N。

    下面直接上代码。

    1. 一些全局变量:

    const int row_block_num_pso = 30;   //FFD网格的行数
    const int col_block_num_pso = 30;   //FFD网格的列数
    //FFD网格的控制参数个数
    const int DATA_SIZE = (row_block_num_pso+BPLINE_BOARD_SIZE)*(col_block_num_pso+BPLINE_BOARD_SIZE)*2;
    
    
    const int NUM = 300;//粒子数
    const float c1 = 1.8;   //粒子群参数1
    const float c2 = 1.8;   //粒子群参数2
    //控制参数被初始化为-1到1之间的随机数
    float xmin = -1;      
    float xmax = 1;       
    //粒子群的速度范围被钳制在为-20到20之间,这是经验值,合适的钳制范围可以加快收敛速度
    const float vmin = -10;
    const float vmax = 10;
    
    
    
    
    //定义粒子群,粒子个数为NUM,每个粒子为一个结构体
    struct particle
    {
      float x[DATA_SIZE];   //当前粒子包含的控制参数
    
    
      float bestx[DATA_SIZE];  //当前粒子的历史最优控制参数
    
    
      float f;    //前粒子包含的控制参数对应的目标函数值
    
    
      float bestf;  //当前粒子的历史最优控制参数对应的目标函数值
    
    
    }swarm[NUM];
    

    2. 延时函数代码。

    这里的延时函数,是在连续获取随机数时,增加一定的延时间隔,或许能增加随机数的随机性(个人经验,有待考证)。

    void delay_for(long int cnt)
    {
      while(cnt--);
    }
    

    3. 粒子群优化代码。

    void PSO(Mat S1, Mat Si, Mat &M, Mat &grid_points)
    {
      grid_points.create(1, DATA_SIZE, CV_32FC1);
      float *grid_points_p = grid_points.ptr<float>(0);
      for (int i = 0; i < DATA_SIZE; i++)//初始化全局最优
      {
        grid_points_p[i] = randf(xmin, xmax);
      }
    
    
      float gbestf_pre = 0;
      float gbestf = 100000000.0;
    
    
      Mat para_x(1, DATA_SIZE, CV_32FC1);
    
    
      //初始化粒子群
      for (int i = 0; i < NUM; i++)
      {
    
    
        particle *p1 = &swarm[i];
    
    
        for (int j = 0; j < DATA_SIZE; j++)
        {
          p1->x[j] = randf(xmin, xmax);
          p1->bestx[j] = randf(xmin, xmax);
        }
        memcpy((float *)para_x.data, p1->x, DATA_SIZE*sizeof(float));
        p1->f = F_fun_bpline(S1, Si, row_block_num_pso, col_block_num_pso, para_x);
        p1->bestf = 100000000.0;
      }
    
    
      float *V = (float *)calloc(DATA_SIZE, sizeof(float));
      const int cnt = 5000;
      float w = 0.0025/(cnt-1);
    
    
      srand((unsigned)time(NULL));
    
    
      int cntt = 0;
    
    
      for (int t = 0; t < cnt; t++)
      {
        for (int i = 0; i < NUM; i++)
        {
          particle* p1 = &swarm[i];
          for (int j = 0; j < DATA_SIZE; j++)   //进化方程
          {
            float d1 = randf(0, 1);
            delay_for(100000);
            float d2 = randf(0, 1);
            V[j] = w*(cnt-1-t)*V[j] + c1*d1*(p1->bestx[j] - p1->x[j]) + c2*d2*(grid_points.ptr<float>(0)[j] - p1->x[j]);
            V[j] = (V[j] < vmin) ? vmin : ((V[j] > vmax) ? vmax : V[j]);
            p1->x[j] = p1->x[j] + V[j];
          }
          
          memcpy((float *)para_x.data, p1->x, DATA_SIZE*sizeof(float));
          p1->f = F_fun_bpline(S1, Si, row_block_num_pso, col_block_num_pso, para_x);
    
    
          if (p1->f < p1->bestf)   //改变该粒子的历史最优
          {
            for (int j = 0; j < DATA_SIZE; j++)
            {
              p1->bestx[j] = p1->x[j];
            }
            p1->bestf = p1->f;
          }
    
    
          if (p1->bestf < gbestf)   //改变所有例子的全局最优
          {
            for (int j = 0; j < DATA_SIZE; j++)
            {
              grid_points.ptr<float>(0)[j] = p1->bestx[j];
            }
    
    
            for (int j = 0; j < DATA_SIZE; j++) //把当前全局最优的粒子随机放到另一位置
            {
              p1->x[j] = randf(xmin, xmax);
            }
    
    
            gbestf_pre = gbestf;
            gbestf = p1->bestf;
    
    
            printf("t = %d, gbestf = %lf\n", t, gbestf);
          }
        }
    
    
        if (abs(gbestf_pre - gbestf) < 1e-6)
        {
          cntt++;
          if(cntt >= 1000)
          {
            break;
          }
        }
        else
        {
          cntt = 0;
        }
      }
    
    
      free(V);
      Bspline_Ffd_cuda(Si, M, row_block_num_pso, col_block_num_pso, grid_points);
      write_data_file("gradient_list.m", d_list);
    }
    

    4. 测试代码:

    void ffd_match_pso_test(void)
    {
      Mat img1 = imread("lena.jpg", CV_LOAD_IMAGE_GRAYSCALE);
      Mat img2 = imread("lena_out.jpg", CV_LOAD_IMAGE_GRAYSCALE);
    
    
      Mat grid_points;
      Mat out;
      PSO(img1, img2, out, grid_points);
    
    
      imshow("img1", img1);
      imshow("img2", img2);
      imshow("out", out);
      imshow("img1-img2", abs(img1-img2));
      imshow("img1-out", abs(img1-out));
      waitKey();
    }
    
    
    

    5. 运行结果:

    运行上述代码,同样对扭曲的Lena图像进行配准,结果如下图所示。

    参考图像

    浮动图像

    配准图像

    参考图像与浮动图像的差值图

    参考图像与配准图像的差值图

    全局最优目标函数值的降低过程

    至此,我们分别使用了三种优化算法来优化FFD形变的控制参数:梯度下降发、LM算法、粒子群算法,梯度下降法比较稳定,但容易陷入局部极值,LM算法兼具稳定与不容易陷入局部极值的特性,不过当参数量很大时LM算法计算海塞矩阵或者矩阵的逆很是耗时,相比来说粒子群算法的不容易陷入局部极值特性更好,而且也没有LM算法耗时。

    本人微信公众号如下,会不定时更新更精彩的内容,欢迎扫码关注:

    展开全文
  • 图像配准简介 CV 两幅图像配准

    千次阅读 2017-06-23 08:39:23
    图像配准算法一般可分为: 一、基于图像灰度...其中,算法类型二最普遍,基于特征的图像配准算法的核心步骤为:1.特征提取、2.特征匹配、3.模型参数估计、4.图像变换和灰度插值(重采样)。 图像配准必须

    转自:http://www.cnblogs.com/Lemon-Li/p/3504717.html


    图像配准算法一般可分为: 一、基于图像灰度统计特性配准算法;二、基于图像特征配准算法;三、基于图像理解的配准算法。

    其中,算法类型二最普遍,基于特征的图像配准算法的核心步骤为:1.特征提取、2.特征匹配、3.模型参数估计、4.图像变换和灰度插值(重采样)。

    图像配准必须得考虑3个问题: 分别是配准时所用到的空间变换模型、配准的相似性测度准则以及空间变换矩阵的寻优方式。

    1) 空间变换模型 ,是指的这两幅要配准的图像之间的映射模型,比如只有旋转、平移这些操作,那就是刚体变换模型,又比如有缩放操作,甚至X方向和Y方向缩放的幅度都还不一样,那就是仿射变换或者非线性变换模型。总之你要做配准,先要确定这两幅图像之间是一种什么样的映射模型。要是对这个变换模型还不清楚,你就到google上或者万方上搜索“仿射变换”、“刚体变换”这些关键词。帖子里不可能讲的太详细。
    2) 配准的相似性测度准则 。在你确定了变换模型后,接下去要做什么?当然是确定模型里的参数了,而要确定这些参数(不同的变换模型参数个数是不一样的,像刚体变换有x平移、y平移和旋转角度sita三个参数,仿射变换有6个参数)你得告诉程序什么参数是最好的,或者说是正确的。那么判断什么参数是正确的一个准则就是我们说的配准的相似性测度准则,也就是告诉程序在某组参数下是配准的程度是多少,显然使得配准程度最好的那组参数就是我们要找的参数。

    3)空间变换矩阵的寻优方式。因为大多数情况下,模型中的参数不是靠解出来的,而是要靠“尝试-判断”这种方式去寻找,空间变换矩阵的寻优说白了也就是怎么对这些参数进行寻优,找出使得配准程度最好的那一组参数的过程。这里有很多方法,如遗传算法、粒子群优化算法等等,如果你对这些算法都不了解,没办法,你只有用最笨的遍历式搜索方法了,也就是以某一个步距,搜索所有的参数组合方式,然后找出使得按照相似性测度准则配准程度最高的那一组参数。

     

    举例说明:比如有一幅图像A,我将A左移了2个像素,再往下移了3个像素,又顺时针旋转了60度,这时的图像我们称作B。如果我们要对A和B进行配准,其实就是确定2、3、60这三个参数的过程,因为这三个参数一旦确定了,我就知道了B和A的对应关系,换句话说对于B中的任何一个像素点我就知道在A中对应的是哪个点。这里因为我知道这两幅图只有平移和旋转的变换操作,所以我们采用的模型是刚体变换模型(实际情况下,你如果不知道这两幅图像进行了什么变换操作,只有大概根据图像的位置信息揣测了,一般情况下非线性变换模型是最正确的,但是参数也最多)。配准的相似性测度准则这里我们就用简单点的(只是举个例子说明下过程,事实上的许多情况都要复杂的多),以二值化后两幅图像重合的像素点个数为准,也就是说我们认为使得两幅图像重合的像素最多的那组参数就是正确的变换参数,理论上来讲,如果两幅图像严格配准了,那么显然他们所有的像素点都是重合的,否则就有错开的部分。寻优方法比较啰嗦,任何一个优化算法都不是几句话说的明白的,这里直接用遍历搜索法吧。因为有三个参数需要寻优因此,我们对这三个参数的解空间进行遍历,比如对X方向的平移像素个数我们从-100搜索到+100,步距为1像素,对Y方向的平移像素我们也从-100搜索到+100,步距为1像素,对旋转角度我们从0搜索到360度,步距为1度。这样等于说要完成一个200*200*360次的循环,然后在每次循环里面,我们都判断一下,按照当次循环参数进行变换后的A图像与B图像的重合像素个数有多少,找出200*200*360次循环中使得重合像素个数最多的那组循环中所使用的参数,这组参数就是我们所要的结果,如果一切正常,显然我们会在2,3,60这组参数所在循环中得到重合像素个数最多的结果。而所谓优化算法其实就是用一种更为智能的方式得到2,3,60这三个参数的过程。这样就完成了配准的过程。

     

    多项式模型在两幅图像上找到足够的同名点对,然后用多项式模型强行纠正。大小、旋转、噪声等都不是问题。 

    自己构造算法的话,可以这样。假设A为正确位置的图像,B是待校正的图像。B图上的任意一点(x,y),在校正后图像上的位置应该为(u,v)有(假设多项式为2阶):

    u = a0 + a1*x + a2*y + a3*x2 + a4*y2 + a5*x*y

    v = b0 + b1*x + b2*y + b3*x2 + b4*y2 + b5*x*y

    在B图上散布取x,y值,在A图的同名点上取u,v值,当点数足够时,解a、b共12个参数。

    得到方程后,遍历b图所有像元点x,y带入上述公式,就得到了全部配准后的位置u,v。

    自动获取同名点比较困难些,其它容易。这个可以多阶,但如果像你说的非刚性变化一般3阶就够了。 


    两点线段匹配:选取两幅图的两个应该相同的点(一共4个点),得到4个点的坐标,然后用A图的两点线段与B图的两点线段计算出仿射变换的矩阵,再把矩阵应用于整幅图就行了。看看opencv吧,好多现成的API函数。

     

    六参数配准(仿射变换)具体求法:一共是6个参数,坐标轴的变化夹角,旋转夹角,X尺度变化,Y尺度变化,X平移,Y平移。

    进行一系列运算过后,可以变成一个线性代数式(具体怎么变换的不用管,比较复杂)

    u = Ax + By + C

    v = Dx + Ey + F

    其中,U,V是目标图的横纵坐标,X,Y是原图横纵坐标.也就是说

    [u v 1]'=[ A B C;D E F;0 0 1]*[x y z]'

    具体A-F六个参数的计算可以通过SIFT在两张图中找到足够的尺度不变特征点,然后对这些特征点进行匹配。匹配后就能得到很多特征点对。然后建立

    u = Ax + By + C

    v = Dx + Ey + F

    这样的方程。一共3对特征点,6个方程,就足够解6个参数了。但是实际上矩阵空间内三个远远不够。一般要把所有的一起拿来解超定方程组。

    至于特征点匹配,SIFT应该能算出128位特征描述子,用两个点之间的特征描述子的欧式距离可以实现匹配。另外要速度优化的话可以不算这个,直接用灰度相关系数和一些其他算法来排除误匹配,比如ransac。其实128位特征描述子只有在进行初始配准的时候有用。而且128位空间的欧氏距离计算开销大,一般都用的正交反余弦来逼近。所以干脆不算这个东西,时间开销一下就少了70%以上。那么只知道一些特征点,用什么来进行初始匹配呢?方法就是用特征点之间的灰度相关系数,这个是很轻量级的。

     

    总之,配准问题要实验,看结果,分析,再做改动,很难说有个算法能一定解决的。

    需要考虑的可能问题包括:

    resize分辨率,再做进一步处理的,控制特征点数量。

    平滑去噪。 

    减少亮度对比度差异,用image normalization,就是先求图的mean,std,然后把所有pixel变换,使得最终mean是0,std是1.

    surf算法、SIFT算子、Harris角点提取。

     

    关于Image Alignment,推荐论文: Lucas-Kanade 20 years On: compositional algorithm,它是最慢的,不过根据我的经验来看,z在变换并不是特别大的时候,还蛮好用的。它适用于translation,scaling,rotation变换,寻找最优过程类似于用gradient of multi-variable function 寻找 local minimum。 但是假如变换太大,这个方法应该不行。关于代码,http://www.codeproject.com/KB/recipes/ImgAlign.aspx。 Remark:如果图像里有太多非刚性变换,忽略所有的推荐。

    Shi-Tomasi角点特征+Lucas-kanade(光流).Harris's original definition involved taking the determinant of H(p), subtracting the trace of H(p) (with some weighting coefficient), and then comparing this difference to a predetermined threshold. It was later found by Shi and Tomasi [Shi94] that good corners resulted as long as the smaller of the two eigenvalues was greater than a minimum threshold. Shi and Tomasi's method was not only sufficient but in many cases gave more satisfactory results than Harris's method


    展开全文
  • 图像配准】基于Horn-Schunck和Lucas-Kanade等光流场实现图像配准matlab源码含GUI界面.md
  • 【摘要】 图像配准是计算机视觉中的经典难题之一,在医学领域有重要的作用。本文简要介绍了其传统方法和前沿深度学习方法VoxelMorph。 排版说明(上图下文,而不是上文下图) 在医学影像处理领域,使用地比较多...

    【摘要】 图像配准是计算机视觉中的经典难题之一,在医学领域有重要的作用。本文简要介绍了其传统方法和前沿深度学习方法VoxelMorph。

    排版说明(上图下文,而不是上文下图)

    在医学影像处理领域,使用地比较多的图像配准是多模态图像配准和时间序列配准(也被称单模态多时相配准)。

    医学图像配准在很多医学场景中都具有重要的用途,很多用途都是人眼很难精确办到的事情,是对辅助诊断等热门医疗AI的有效补充。

    1.为了提升医疗AI辅助诊断的分类准确率,可以使用传统图像配准方法(比如基于SIFT算子的特征点匹配)进行图像的旋转与缩放校正,也可以使用在深度学习网络中额外接入一个Spatial Transform Network。

    2.为了进行定量的疗效评估(特别是科学研究和随访场景),需要将同一病人的不同时间点采集的医学影像进行对比,也需要将不同病人的医学影像进行对比。这时就需要进行标准化。这种标准化涉及到大量的柔性变化,就需要进行柔性图像配准。

    3.辅助医生进行术前规划。常规的手术规划依赖于丰富经验的医师的脑海中的精确的三维重建,这种重建经验是稀缺的,且有较强的主观性。多模态影像的图像配准有利于医生进行精确的肿瘤切除、超声消融和靶向干预方案的实施。

    4.辅助医生进行术中导航。以血管介入手术为例,为了了解导管的位置每时每刻在血管中的位置,医生需要穿着厚厚的铅板防护服给病人做手术。防护服不能阻挡所有X射线。累积的较大辐射量可能导致医生癌症、精子异常等问题。为了减少医生受到的X线辐射量,可以在术前进行3D血管影像的采集,在术中进行2D的实时血管造影影像采集,然后将2D图像配准到3D影像中,从而减少医生经验的依赖性。

    图像配准是一个很难的研究方向,也就是说比较难出好的结果。因此,很多年轻学者不愿意选择图像配准进行深入研究。除此之外,金标准稀缺也制约了这个研究方向的发展。

    图像配准有很多分类方式。医学图像配准中,刚性配准和柔性配准的分类方式比较常见。

    由于深度学习近年来的迅猛发展,不少研究者也进行了基于深度学习的图像配准工作。传统图像配准方法中效果较好的方法迭代时间长。深度学习可以把迭代时间转移到模型训练时间中去,其实际推理时间可以大大少于传统方法的迭代时间。配准时间的大大缩减是深度学习图像配准的重要优点之一。

     

    对于真实世界的图像来说,图像配准常常是没有金标准的。对于刚性配准,可以使用相关性(CC)作为评价指标。对于柔性配准,可以使用Dice作为评价指标(前提是数据集中有分割标注)。

    由于图像配准数据常常是没有金标准的,所以深度学习的方法在无监督方向发展更快[1]。同时,无标注的医学原始数据量也大,更符合深度学习的大数据量要求。

     

    VoxelMorph是近2年来效果较好的无监督深度学习医学图像变形配准方法之一[2]。

    VoxelMorph使用有监督方式的配准效果更好,但只是小幅度提升而已[2]。

     

    可以调节VoxelMorph中的基本网络结构来分别提升配准时间和配准精度,但二者不容易得兼[2]。

     

    VoxelMorph在分割性能上并没有显著提高,但在耗时上让柔性配准进入秒级时代[2]。

    但在更复杂的存在较大位移的形变场的情况下,配准难度大大提高,Voxelmorph的效果不佳。此时就需要降低配准任务难度。Recursive cascaded networks通过级联递归的方式将一个难任务拆分为多个容易任务让Voxelmorph来配准,取得了不错的效果[3]。

    总得来说,无监督深度学习是医学图像配准的具有前景的方向之一,值得进一步探索。

    原帖:https://bbs.huaweicloud.com/blogs/174612

    展开全文
  • 本pdf文档介绍了图像配准的概念,原理,pdf
  • 在前面的文章中,我们讲到使用FFD形变作为坐标变换模型,使用梯度下降法作为优化算法来寻求FFD的最优控制参数:图像配准系列之基于FFD形变与梯度下降法的图像配准LM算法可以看作是梯度下降法...
  • 数字图像 图像配准 程序 OPEN CV数字图像 图像配准 程序 OPEN CV数字图像 图像配准 程序 OPEN CV 三次样条插值,我写的,注释很全很清晰
  • 1、内容简介 图像配准方法按照其算法原理可以分为:基于灰度信息的配准、基于变换域信息的配准、基于特征信息的配准。...基于互信息的图像配准算法常用于医学图像配准中,下面是一个互信息的图像配准方法 ...
  • 医学图像配准

    2018-10-19 09:54:35
    非刚性网格的图像配准算法,适用于医学图像重的图像配准算法,效果很好
  • VC++图像图像配准

    2012-05-16 16:08:32
    Visual C++ 图像配准 程序 源代码 可运行调试
  • matlab surf图像配准 图像检索 图像处理 模式识别 我本人的毕业设计 就是利用的surf来提取的特征,并进行相似度比较后,然后进行检索的。此程序对想利用surf的同学可以得到很大的帮助。surf比sift具有更快的速度,更...
  • 图像配准综述

    2018-05-22 14:15:09
    自己写的很浅显的图像配准介绍,适合准备了解配准算法脉络的新手

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 11,970
精华内容 4,788
关键字:

图像配准