当前位置: 首页>>代码示例>>C++>>正文


C++ channel::apply方法代码示例

本文整理汇总了C++中channel::apply方法的典型用法代码示例。如果您正苦于以下问题:C++ channel::apply方法的具体用法?C++ channel::apply怎么用?C++ channel::apply使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在channel的用法示例。


在下文中一共展示了channel::apply方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: apply

  // On place apply for type channel8!
  bool distanceTransform::apply(channel& srcdest) const {

    if ((srcdest.rows() < 2) || (srcdest.columns() < 2)) {
      setStatusString("At least 2 pixels at each axis expected");
      return false;
    }

    const parameters& param = getParameters();

    if(   param.distance == parameters::EightNeighborhood
       || param.distance == parameters::FourNeighborhood){
      // ensure that the non-zero values are maximal
      int y;
      vector<channel::value_type>::iterator it,eit;
      const float max = static_cast<float>(srcdest.rows()+srcdest.columns());
      for (y=0;y<srcdest.rows();y++) {
        vector<channel::value_type>& vct = srcdest.getRow(y);
        for (it=vct.begin(),eit=vct.end();it!=eit;++it) {
          if ((*it)>0.0f) {
            (*it)=max;
          }
        }
      }
    }

    switch(param.distance){
    case parameters::EightNeighborhood:
      
      iteration8back(srcdest);
      iteration8(srcdest);
      return true;

    case parameters::FourNeighborhood:
      
      iteration4back(srcdest);
      iteration4(srcdest);
      return true;

    case parameters::Euclidean:
      
      EDT_1D(srcdest);
      EDT_2D(srcdest);
      srcdest.apply(sqrt);
      return true;

    case parameters::EuclideanSqr:

      EDT_1D(srcdest);
      EDT_2D(srcdest);
      return true;

    case parameters::EightSED:
    
      sedFiltering(srcdest, true);
      srcdest.apply(sqrt);
      return true;
    
    case parameters::EightSEDSqr:

      sedFiltering(srcdest,true);
      return true;

    case parameters::FourSED:

      sedFiltering(srcdest, false);
      srcdest.apply(sqrt);
      return true;

    case parameters::FourSEDSqr:

      sedFiltering(srcdest, false);
      return true;

    default:
      return false;
    }
  };
开发者ID:mvancompernolle,项目名称:ai_project,代码行数:78,代码来源:ltiDistanceTransform.cpp


注:本文中的channel::apply方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。