icvDefaultSplitIdx_R和icvDefaultSplitIdx_C

原创 2015年07月10日 10:33:17



static void CV_CDECL icvDefaultSplitIdx_R( int compidx, float threshold,
                                    CvMat* idx, CvMat** left, CvMat** right,
                                    void* userdata )
{
    CvMat* trainData = (CvMat*) userdata;
    int i = 0;

    *left = cvCreateMat( 1, trainData->rows, CV_32FC1 );
    *right = cvCreateMat( 1, trainData->rows, CV_32FC1 );
    (*left)->cols = (*right)->cols = 0;
    if( idx == NULL )
    {
        for( i = 0; i < trainData->rows; i++ )
        {
            if( CV_MAT_ELEM( *trainData, float, i, compidx ) < threshold )
            {
                (*left)->data.fl[(*left)->cols++] = (float) i;
            }
            else
            {
                (*right)->data.fl[(*right)->cols++] = (float) i;
            }
        }
    }
    else
    {
        uchar* idxdata;
        int idxnum;
        int idxstep;
        int index;

        idxdata = idx->data.ptr;
        idxnum = (idx->rows == 1) ? idx->cols : idx->rows;
        idxstep = (idx->rows == 1) ? CV_ELEM_SIZE( idx->type ) : idx->step;
        for( i = 0; i < idxnum; i++ )
        {
            index = (int) *((float*) (idxdata + i * idxstep));
            if( CV_MAT_ELEM( *trainData, float, index, compidx ) < threshold )
            {
                (*left)->data.fl[(*left)->cols++] = (float) index;
            }
            else
            {
                (*right)->data.fl[(*right)->cols++] = (float) index;
            }
        }
    }
}

static void CV_CDECL icvDefaultSplitIdx_C( int compidx, float threshold,
                                    CvMat* idx, CvMat** left, CvMat** right,
                                    void* userdata )
{
    CvMat* trainData = (CvMat*) userdata;
    int i = 0;

    *left = cvCreateMat( 1, trainData->cols, CV_32FC1 );
    *right = cvCreateMat( 1, trainData->cols, CV_32FC1 );
    (*left)->cols = (*right)->cols = 0;
    if( idx == NULL )
    {
        for( i = 0; i < trainData->cols; i++ )
        {
            if( CV_MAT_ELEM( *trainData, float, compidx, i ) < threshold )
            {
                (*left)->data.fl[(*left)->cols++] = (float) i;
            }
            else
            {
                (*right)->data.fl[(*right)->cols++] = (float) i;
            }
        }
    }
    else
    {
        uchar* idxdata;
        int idxnum;
        int idxstep;
        int index;

        idxdata = idx->data.ptr;
        idxnum = (idx->rows == 1) ? idx->cols : idx->rows;
        idxstep = (idx->rows == 1) ? CV_ELEM_SIZE( idx->type ) : idx->step;
        for( i = 0; i < idxnum; i++ )
        {
            index = (int) *((float*) (idxdata + i * idxstep));
            if( CV_MAT_ELEM( *trainData, float, compidx, index ) < threshold )
            {
                (*left)->data.fl[(*left)->cols++] = (float) index;
            }
            else
            {
                (*right)->data.fl[(*right)->cols++] = (float) index;
            }
        }
    }
}


K&R的名著:<C程序设计语言>小程序总结5

1、readlines函数:读取输入行 int readlines(char *lineptr[], int maxlines) {       int len, nlines;       ...

D​e​v​i​c​e​-​M​a​p​p​e​r​+​M​u​l​t​i​p​a​t​h

http://www.docin.com/p-693306145.html   -====gu 一、什么是多路径 普通的电脑主机都是一个硬盘挂接到一个总线上,这...
  • gnicky
  • gnicky
  • 2014年08月06日 21:16
  • 895

_磁珠(Bead)_电感(L)_电阻(R)_电容(C)于噪声抑制之电容

最近在看一篇有关电容、电感、磁珠、电阻的文档,纪录一下。 当两个金属很靠近时,便形成了电容。 通常电源输出端,其电压并非理想的恒定值,而是会有涟波与噪声: 抑制这些会危害电路的涟 波、噪声、...

在windows Server 2008 R2上安装oracle 12C 出现的问题以及解决方法

在windows Server 2008 R2上安装oracle 12C  参考文章: http://yunan.blog.51cto.com/4842211/1390937 按章上面的步骤一切顺利...
  • newizan
  • newizan
  • 2015年12月24日 11:12
  • 7059

如何使用R软件建立C5.0决策树

决策树是解决分类问题的一种方法,决策树有很多种算法,包括ID3、C5.0、CART、CHAID、QUEST等,区别如下 决策树的建立可以分为2个过程: 1、决策树的生长 (1)如何从众多的输入变...

语言篇-语言概览(C、C++、JAVA、Matlab、Python、R)

待补充

瑞萨单片机教程之R8C/Tiny

瑞萨单片机教程之R8C/Tiny 第二节  Tiny系列 1.1  Tiny系列     瑞萨正在拓展在SuperH、M16C、H8、H8S等瑞萨所提供的高性能MCU各族及各系列...

K&R《C程序设计语言》p17:求m的n次方

代码: #include int power(int m, int n); int main() { int i; for(i = 0; i < 5; i++) { printf("...

“http://hao643.com/?r=wwwww&m=c166” 类似这样的恶意链接去除方法

网络中游荡,不经意间就被感染,感染后不痛但是让人瘙痒烦躁。 首先说明出现的问题,发现电脑每次开机、不定时(也许这个病毒设置的就是定时,没有具体统计)的出现 谷歌浏览器、ie浏览器 的快捷方式被修改,...

详解IIS中的重写工具下关于操作重定向URL中的{R:N}与{C:N}

转自:http://shiyousan.com/post/635648886502897428 URL Rewrite(URL重写工具)作为IIS下较为常用的模块组件, 提供了重写、...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:icvDefaultSplitIdx_R和icvDefaultSplitIdx_C
举报原因:
原因补充:

(最多只允许输入30个字)