Mitre_sfr代码注解(三) 将ROI超采样为ESF(locate_centroids函数/fit函数和bin_to_regular_xgrid函数)

本文主要解析Mitre_sfr代码中的关键函数,包括locate_centroids函数用于找到ROI行的质心,fit函数拟合质心确定刀口斜率,bin_to_regular_xgrid函数将ROI超采样为ESF,以提高图像处理的精度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    笔者学识有限。 本博客旨在对mitre_sfr核心代码进行简单注解, 详细内容读者仁者见仁智者见智。

    ESF一条白变黑(黑变白)的线。IOS SFR算法希望通过对刀口进行超采样, 生成一条更平滑的的变化曲线, 降低计算的误差。

    1. locate_centroids函数用于定位ROI每一行的质心;

    2. fit函数拟合locate_centroids定位出来的质心, 确定刀口的斜率;

    3. 然后bin_to_regular_xgrid函数基于前面两个函数的结果把ROI区域超采样为单行的ESF。

 

/*****************************************************************************/
// 寻找质心
// shifts --> 当前行与中心行的距离
// temp --> 当前行的质心与中心行的质心的距离
// offset --> 中心行质心的位置
unsigned short locate_centroids(double *farea, double *temp, 
				double *shifts,
				unsigned short size_x, unsigned short size_y,
				double *offset) {
  unsigned long i, j;
  double dt, dt1, dt2;


  /* Compute the first difference on each line. Interpolate to find the 
     centroid of the first derivatives. */
  // 求质心C
  // C = Σx*(f(x+1)-f(x))/Σ(f(x+1)-f(x))
  for (j = 0; j < size_y; j++) {
    dt = 0.0;
    dt1 = 0.0;
    for (i = 0; i < size_x-1; i++) {
      dt2 = farea[(j*(long)size_x)+(i+1)] - farea[(j*(long)size_x)+i];  // 计算每个点的导数
      dt += dt2 * (double)i; // 
      dt1 += dt2;
    }
    shifts[j]=dt/dt1; // 质心
  }

  /* check again to be sure we a
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值