OpenCV 에서 자주 사용 하 는 윤곽 처리 함수 집합

다음으로 이동:http://fsa.ia.ac.cn/opencv-doc-cn/opencv-doc-cn-0.9.7/ref/opencvref_cv.cn.htm
 
ApproxChains
다각형 곡선 으로 Freeman 체인 에 접근
CvSeq* cvApproxChains( CvSeq* src_seq, CvMemStorage* storage,
                       int method=CV_CHAIN_APPROX_SIMPLE,
                       double parameter=0, int minimal_perimeter=0, int recursive=0 );

 
src_seq
다른 체인 과 관련 된 체인 포인터
storage
다각형 선분 위 치 를 저장 하 는 캐 시
method
접근 방법 (함수 cvFindContours 설명 참조).
parameter
방법 매개 변수 (현재 사용 하지 않 음).
minimal_perimeter
둘레minimal_perimeter  윤곽.다른 체인 은 결과 에서 제거 합 니 다.
recursive
하면, 만약, 만약...src_seq 에서 이용h_nextv_next links 모든 접근 가능 한 체인 에 접근 합 니 다.0 이면 싱글 체인 에 가깝다.
이것 은 단독 접근 절차 다.같은 접근 표지 에 대해 함수 cvApprox Chains 는 cvFindContours 의 작업 방식 과 똑 같 습 니 다.그것 은 발 견 된 첫 번 째 윤곽 의 지침 을 되 돌려 주 었 다.다른 접근 모듈 은 구조 중의 v_nextv_next 도 메 인 을 되 돌려 방문 할 수 있 습 니 다.
StartReadChainPoints
체인 읽 기 초기 화
void cvStartReadChainPoints( CvChain* chain, CvChainPtReader* reader );

 
chain 
     사슬 의 지침
reader 
     체인 읽 기 상태
함수 cvstartReadChainPoints 는 특수 한 판독 기 를 초기 화 합 니 다 (Dynamic Data Structures 를 참고 하여 집합 과 시퀀스 에 대한 더 많은 내용 을 얻 을 수 있 습 니 다).
ReadChainPoint
다음 체인 을 얻 을 수 있 는 점.
CvPoint cvReadChainPoint( CvChainPtReader* reader );

 
reader
체인 읽 기 상태
함수 cvReadChainPoint 는 현재 체인 의 점 을 되 돌려 주 고 읽 기 위 치 를 업데이트 합 니 다.
ApproxPoly
지정 정밀도 로 다각형 곡선 에 접근 하 다.
CvSeq* cvApproxPoly( const void* src_seq, int header_size, CvMemStorage* storage,
                     int method, double parameter, int parameter2=0 );

 
src_seq
점 집합 배열 시퀀스
header_size
곡선 에 가 까 운 머리 사이즈.
storage
윤곽 에 가 까 운 용기.NULL 이면 입력 한 시퀀스 를 사용 합 니 다.
method
접근 방법.현재 지원CV_POLY_APPROX_DP Douglas - Peucker 알고리즘 에 대응 합 니 다.
parameter
방법 관련 매개 변수.맞다.CV_POLY_APPROX_DP 그것 은 지 정 된 접근 정밀도 이다.
parameter2
하면, 만약, 만약...src_seq 은 서열 로 하나의 서열 에 가 까 워 지 거나src_seq 의 동일 하거나 저급 한 차원 에서 모든 서열 에 가깝다 (cvFindContours 에서 윤곽 계승 구조 에 대한 설명 참조). 만약 에src_seq 점 집합 배열 (CvMat *) 이 고 매개 변수 지정 곡선 은 닫 힘 (parameter2! = 0) 아니면 비 닫 기 (parameter2 =0).
함수 cvApprox Poly 는 하나 이상 의 곡선 에 접근 하고 접근 결 과 를 되 돌려 줍 니 다.여러 곡선 에 가 까 워 지면 생 성 된 나 무 는 입력 한 것 과 같은 구 조 를 가진다.(1: 1 의 대응 관계).
BoundingRect
계산 점 집합의 맨 바깥 (up - right) 직사각형 경계
CvRect cvBoundingRect( CvArr* points, int update=0 );

 
points
2 차원 점 집합, 점 의 서열 또는 벡터 (CvMat
update
표 지 를 갱신 하 다.다음은 윤곽 유형 과 표지 의 조합 일 수 있 습 니 다.
  • update = 0, contour ~ CvContour *: 직사각형 경 계 는 계산 하지 않 지만 윤곽 헤드 rect 도 메 인 에서 직접 얻 을 수 있 습 니 다.
  • update = 1, contour ~ CvContour *: 직사각형 경 계 를 계산 하고 결 과 를 윤곽 헤드 rect 필드 에 기록 합 니 다.
  • update = 0, contour ~ CVseq * 또는 CvMat *: 경계 사각형 을 계산 하고 되 돌려 줍 니 다
  • update = 1, contour ~ CVseq * 또는 CvMat *: 실행 오류 발생 (런 타임 오류 발생)
  • 함수 cvBoundingRect 는 2 차원 점 집합 의 맨 바깥 (up - right) 사각형 경 계 를 되 돌려 줍 니 다.
    ContourArea
    전체 윤곽 이나 부분 윤곽 의 면적 을 계산 하 다.
    double cvContourArea( const CvArr* contour, CvSlice slice=CV_WHOLE_SEQ );
    

     
    contour
    윤곽 (지정 한 시퀀스 나 배열).
    slice
    관심 있 는 윤곽 부분의 시작 점, 부족 은 전체 윤곽 의 면적 을 계산 하 는 것 이다.
    함수 cvContourArea 는 전체 윤곽 이나 부분 윤곽 의 면적 을 계산 합 니 다.뒤의 상황 에 대해 면적 은 윤곽 부분 과 시작 점 연결선 으로 구 성 된 폐쇄 부분의 면적 을 나타 낸다.다음 그림 에서 보 듯 이:
     
    NOTE: 윤곽 의 방향 이 면적 에 영향 을 주 는 기호.따라서 함수 가 마이너스 결 과 를 되 돌 릴 수 있 습 니 다.응용 함수 fabs() 는 면적 의 절대 치 를 얻는다.
    ArcLength
    윤곽 둘레 나 곡선 길 이 를 계산 하 다.
    double cvArcLength( const void* curve, CvSlice slice=CV_WHOLE_SEQ, int is_closed=-1 );
    

     
    curve
    곡선 점 집합 시퀀스 또는 배열
    slice
    곡선의 시작 점, 결 성 은 전체 곡선의 길 이 를 계산 하 는 것 이다.
    is_closed
    곡선 이 닫 혔 는 지 세 가지 상황 이 있 음 을 나타 낸다.
  • is_closed = 0 - 가설 곡선 불 폐 합
  • is_closed > 0 - 가설 곡선 폐쇄
  • is_closed < 0 - 곡선 이 서열 이면 검사 ((CVseq *) curve) - > flags 의 표지 CVSEQ_FLAG_곡선 이 닫 혔 는 지 확인 하려 면 CLOSED 를 누 르 십시오.그렇지 않 으 면 곡선 이 닫 히 지 않 는 다 고 가정 합 니 다.

  • 함수 cvArcLength 는 시퀀스 점 간 의 선분 길 이 를 순서대로 계산 하고 곡선의 길 이 를 구 합 니 다.
    CreateContourTree
    윤곽 을 만 드 는 계승 표시 형식
    CvContourTree* cvCreateContourTree( const CvSeq* contour, CvMemStorage* storage, double threshold );
    

     
    contour
    입력 한 윤곽
    storage
    출력 트 리 의 용기
    threshold
    근접 정밀도
    함수 cvCreate ContourTree 입력 윤곽 contour  이 진 트 리 를 만 들 고 뿌리 지침 을 되 돌려 줍 니 다.인자 threshold 가 0 보다 작 거나 같 으 면 함수 가 완전한 이 진 트 리 를 만 듭 니 다.하면, 만약, 만약...  0 보다 크 면 함수 가 threshold 지정 한 정밀도 로 이 진 트 리 를 만 듭 니 다. 기선 의 절단 구역 의 정점 이 threshold 보다 작 으 면 이 수 는 성장 을 멈 추고 함수 의 최종 결과 로 돌아 갑 니 다.
    ContourFromContourTree
    트 리 에서 윤곽 회복
    CvSeq* cvContourFromContourTree( const CvContourTree* tree, CvMemStorage* storage,
                                     CvTermCriteria criteria );
    

     
    tree
    윤곽 트 리
    storage
    재 구 성 된 윤곽 용기
    criteria
    재 구성 중지 준칙
    함수 cvContourFromContourTree 가 이 진 트 리 에서 윤곽 을 회복 합 니 다.매개 변수 threshold 는 재 구축 의 정밀도 와 사용 나무의 수량 과 차원 을 결정 한다.그래서 가 까 운 윤곽 을 만 들 수 있 습 니 다.함수 가 재 구성 윤곽 을 되 돌려 줍 니 다.
    MatchContourTrees
    나무의 형태 로 두 윤곽 을 비교 하 다
    double cvMatchContourTrees( const CvContourTree* tree1, const CvContourTree* tree2,
                                int method, double threshold );
    

     
    tree1
    첫 번 째 윤곽 트 리
    tree2
    두 번 째 윤곽 트 리
    method
    싱크로 율지지criteria
    threshold
    싱크로 율 한도 값
    함수 cvMatch ContourTrees 는 두 윤곽 트 리 의 일치 값 을 계산 합 니 다.나무 뿌리 부터 층 층 이 비 교 를 통 해 싱크로 율 을 계산한다.하면, 만약, 만약...  CV_CONTOUR_TREES_MATCH_I1 는 비교 과정 을 중단 하고 현재 의 차 이 를 되 돌려 줍 니 다.

    좋은 웹페이지 즐겨찾기