opencv中ptr的用法

发布网友

我来回答

1个回答

热心网友

鉴于我不知道你所指的值有么有是什么意思,这里贴出来代码希望能解决你的问题。

来看:


template<typename _Tp> inline const _Tp* Mat::ptr(int y) const
{
    CV_DbgAssert( y == 0 || (data && dims >= 1 && data && (unsigned)y < (unsigned)size.p[0]) );
    return (const _Tp*)(data + step.p[0]*y);
}

CV_DbgAssert断言来确定y==0是否为真。

这是 ptr的define.

类Mat中,step和data的声明。

Mstep  step ;

//! pointer to the data

uchar* data;

Mstep的define:

    struct CV_EXPORTS MStep  //CV_EXPORTS是_cdecl的MACRO

    {

        MStep();

        MStep(size_t s);

        const size_t& operator[](int i) const;

        size_t& operator[](int i);

        operator size_t() const;

        MStep& operator = (size_t s);


        size_t* p;

        size_t buf[2];

    protected:

        MStep& operator = (const MStep&);

    };


综上你看到了P是图片数据信息。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com