OpenCV 의 일부 데이터 구조의 별명

평소에 프로젝트 를 하 는 과정 에서 데이터 형식, 데이터 구 조 를 type: def 를 통 해 별명 으로 바 꾸 는 경우 가 많 습 니 다.프로젝트 초기 에 생각 하지 못 한 데이터 형식 은 먼저 별명 으로 대체 할 수 있 고 확정 한 후에 별명 을 직접 수정 할 수 있다.물론 별명 은 일정한 의 미 를 가 질 수 있 습 니 다. 그러면 개발 자가 사용 할 때 의미 가 더욱 명확 하고 코드 가 간결 합 니 다.플랫폼 을 뛰 어 넘 을 때 별명 정 의 를 수정 하면 되 고 개발 자 도 바 텀 데이터 구조 에 관심 을 가 질 필요 가 없습니다.OpenCV 에 도 이런 별명 이 존재 한다.  
1. Mat 매트릭스 요소 의 유형
enum{CV_8U=0,CV_8S=1,
   CV_16U=2,CV_16S=3,
   CV_32S=4,CV_32F=5,
   CV_64F=6};

2.Point_ 2 차원 좌표 (x, y)
typedef Point_<int> Point2i;
typedef Point_<float> Point2f;
typedef Point_<double> Point2d;
typedef Point2i Point;

3.Point3_ 3 차원 좌표 (x, y, z)
typedef Point3_<int> Point3i;
typedef Point3_<float> Point3f;
typedef Point3_<double> Point3d;

4.Size_ 매트릭스 크기 (width, height)
typedef Size_<int> Size2i;
typedef Size_<float> Size2f;
typedef Size2i Size;

5.Rect_ 행렬 (x, y, width, height)
rect = rect ± point       //    
rect = rect ± size       //    
rect += point, rect -= point, rect += size, rect -= size 
rect = rect1 & rect2      //    
rect = rect1 | rect2      //  r1r2     
rect &= rect1, rect |= rect1 
rect == rect1, rect != rect1 

6. Matx 작은 행렬
typedef Matx<float, 1, 2> Matx12f;
typedef Matx<double, 1, 2> Matx12d;
Matx33f m(1, 2, 3,4, 5, 6,7, 8, 9);

7. 벡터 짧 은 벡터, Matx 기반
typedef Vec<int, 4> Vec4i;
typedef Vec<uchar, 2> Vec2b;
typedef Vec<short, 3> Vec3s;
typedef Vec<float, 2> Vec2f;
typedef Vec<double, 6> Vec6d;

좋은 웹페이지 즐겨찾기