OpenCV 학습 노트 (8) - 이미지 처리 직사 도 ImgProc

직사 도 histograms 도 이미지 처리 에 자주 사용 되 는 수단 이다.새 버 전 은 직사 도 에 대해 이전의 histogram 형식 을 사용 하지 않 고 통 일 된 Mat 또는 Matt 의 형식 으로 직사 도 를 저장 하 는 것 으로 새로운 버 전의 Mat 데이터 구조의 장점 을 알 수 있다.우선 관련 함 수 를 소개 하 겠 습 니 다.
calcHist、calcBackProject、compareHist、EMD、equalizeHist。이 몇 가지 상용 함 수 를 제외 하고 c 함수 가 쓴 직사 도 류 CvHistogram 과 관련 된 조작 도 있 습 니 다. 다음 과 같 습 니 다. cvCalcBackProjectPatch, cvCalcProbDensity, cvClearHist, cvCopyHist, cvCreate Hist, cvGetHistValueXD、cvGetMinMaxHistValue、cvMakeHistHeaderForArray、cvNormalizeHist、QueryHistValue_XD、cvReleaseHist、cvSetHistBinRanges、cvThreshHist、cvCalcPGH
calcHist 함 수 는 그림 을 계산 하 는 직사 도 입 니 다. 사용 방법 은 다음 과 같 습 니 다.
// C++: 
void calcHist(const Mat* arrays, int narrays, const int* channels, InputArray mask, OutputArray hist, int dims, const int* histSize, const float** ranges, bool uniform=true, bool accumulate=false )
// C++: 
void calcHist(const Mat* arrays, int narrays, const int* channels, InputArray mask, SparseMat& hist, int dims, const int* histSize, const float** ranges, bool uniform=true, bool accumulate=false )

arrays 는 이미지 포인 터 를 입력 하기 위해 narrays 는 이미지 의 개 수 를 입력 합 니 다. channels 는 직사 도 를 계산 하 는 채널 목록 입 니 다. mask 는 마스크 행렬 이 고 비어 있 지 않 을 때 arrays 의 마스크 구역 의 직사 도 만 계산 합 니 다. hist 는 출력 하 는 직사 도 행렬 이 고 dims 는 직사 도 행렬 의 차원 입 니 다. histSize 는 1 차원 직사 도 행렬 의 크기 입 니 다.ranges 는 1 차원 직사 도 요소 의 수치 범위 로 2 차원 배열 의 주소 입 니 다. uniform 은 직사 도 가 통일 모델 인지, 통일 모델 에서 range 의 크기 로 늘 어 납 니 다. accumulate 는 누적 표지 로 직사 도 업데이트 에 편리 하고 다시 계산 할 필요 가 없습니다.
몇 개의 실례 를 들 어 모두 가 이해 할 수 있 도록 하 다.
그림 이 그 레이스 케 일 그림 인 경우 호출 방식 은 다음 과 같 습 니 다.
int histSize = 255;
float ranges[] = {0, 255};
const float* histRange = {ranges};
calcHist(&img, 1, 0, Mat(), hist, 1, &histSize, &histRange);

직사각형 그림 의 귀 일 화 는 cvNormalizeHist 함수 에 더 이상 적합 하지 않 습 니 다. 행렬 에 대한 귀 일 화 함수 만 사용 하 십시오.
normalize 가 이 루어 집 니 다.
직사 도 균형 화 함 수 는 equalizeHist 입 니 다. 이 함 수 는 비교적 간단 합 니 다. 여기 서 상세 하 게 소개 하지 않 겠 습 니 다.
직사 도 비교 함 수 는 copare Hist 이 고 함수 반환 값 은 두 행렬 의 유사 정도 이 며 싱크로 율 평가 방법 은 현재 4 가지 가 지원 된다.
– CV_COMP_CORREL Correlation 상관 수, 동일 1, 싱크로 율 범 위 는 [1, 0)
– CV COMP CHISQR Chi - Square 카드 측, 동일 0, 싱크로 율 범 위 는 [0, + inf)
– CV COMP INTERSECT 인 터 랙 션 직사 도 교차, 수가 클 수록 비슷 하고 싱크로 율 범 위 는 [0, + inf)
– CV COMP BHATACHARYYA Bhattacharyya distance 는 정상 적 인 비 교 를 하 는 Bhattacharyya 거 리 는 0 이 고 싱크로 율 범 위 는 [0, + inf) 이다.
계산 역방향 투영 도 함수
calcBackProject. 역방향 투영 도 란 확률 밀도 도 입 니 다. calcBackProject 의 입력 은 그림 과 직사 도 입 니 다. 출력 은 추적 할 그림 의 크기 와 같 습 니 다. 픽 셀 마다 이 점 이 목표 구역 일 확률 을 표시 합 니 다. 이 점 은 밝 을 수록 물체 에 속 할 확률 이 높 습 니 다. 역방향 직사 도 에 대해 서 는 이 글 을 참고 하 시기 바 랍 니 다.http://blog.163.com/thomaskjh@126/ blog / static / 3708299820112810358501 / 이 함 수 는 특징 직사 도 를 이용 하여 그림 의 특징 구역 을 찾 는 것 을 더욱 편리 하 게 합 니 다. 여기 서 자주 사용 하 는 예 를 들 어 피부색 의 특징 직사 도 가 있다 면 검 측 대상 이미지 에서 직사 도 방향 투영 도 를 이용 하여 그림 의 피부색 구역 을 찾 을 수 있 습 니 다.

좋은 웹페이지 즐겨찾기