Programming/openCV2014. 7. 4. 18:13
도서관에서 빌려와서 보는 책 정리중
OpenCV2를활용한컴퓨터비전프로그래밍
카테고리 컴퓨터/IT > 프로그래밍/언어
지은이 로버트 라가니에 (에이콘출판, 2012년)
상세보기

가장 많이 쓰일 클래스는 Mat인데 Matrix 답게 이미지를 행렬로 처리하는 클래스이다.

변수
rows , cols, step 은 이미지의 수직, 수평 해상도와 step은 실제 폭(색상이나 바이트 얼라인 포함한 data width)을 나타내며
data는 순수 이미지에 대한 포인터를 돌려준다.

메소드
row() col()은 해당 행/열에 대한 새로운 Matrix를 생성하고
channels()는 몇 채널인지를 알려준다. 만약 RGB라면 3개 채널(R,G,B) 흑백이라면 1채널을 돌려준다.
ptr()은 해당 데이터에 대한 포인터를
at()은 해당 데이터를 돌려준다.

class CV_EXPORTS Mat
{
public:
    //! returns a new matrix header for the specified row
    Mat row(int y) const;
    //! returns a new matrix header for the specified column
    Mat col(int x) const;

    /*! includes several bit-fields:
         - the magic signature
         - continuity flag
         - depth
         - number of channels
     */
    int flags;
    //! the matrix dimensionality, >= 2
    int dims;
    //! the number of rows and columns or (-1, -1) when the matrix has more than 2 dimensions
    int rows, cols;
    //! pointer to the data
    uchar* data;

    //! returns element type, similar to CV_MAT_TYPE(cvmat->type)
    int type() const;
    //! returns element type, similar to CV_MAT_DEPTH(cvmat->type)
    int depth() const;
    //! returns element type, similar to CV_MAT_CN(cvmat->type)
    int channels() const;

    //! returns pointer to (i0,i1) submatrix along the dimensions #0 and #1
    uchar* ptr(int i0, int i1);
    const uchar* ptr(int i0, int i1) const;

    //! template version of the above method
    template<typename _Tp> _Tp* ptr(int i0=0);

    //! the same as above, with the pointer dereferencing
    template<typename _Tp> _Tp& at(int i0=0);

    MSize size;
    MStep step;

}; 

Posted by 구차니