1. inRange함수
void inRange(InputArray src, InputArray lowerb, InputArray upperb, OutputArray dst)
src는 입력영상, lowerb는 색상 범위의 하한값, upperb는 상한값 그리고 dst는 결과가 들어갈 array
하한값, 상한값 사이에는 흰색(255)
그렇지 않은 픽셀은 검은색(0)으로 표기된다.
2. getStructuringElement함수
Mat getStructuringElement(int shape, Size ksize, Point anchor=Point(-1, -1))
shape는 MorphShapes중 하나
ksize는 커널의 사이즈
anchor는 중심점, (-1,-1)이 default
커널을 만드는 데 사용한다
3. findContours함수
*contour란?
같은 값을 가진 곳을 연결한 선
=> 동일한 색 또는 동일한 색상 강도를 가진 부분의 가장자리 경계를 연결한 선
=> Binary이미지를 사용한다.
위 함수를 쓸 때, 찾고자 하는 대상은 흰색, 배경은 검정색으로 변경한다. (이진화된 이미지에서만 가능)
void findContours(InputOutputArray image, OutputArrayofArrays contours, OutputArray hierarchy, int mode, int method, Point offset = Point())
image = 원본이미지
contours = 외곽선 벡터(배열) - 갯수는 컨투어의 갯수와 같음
hierarchy = 외곽선들 간의 계층 구조
mode = 윤곽 검색 모드 설정
: CV_RETR_EXTERNAL = 맨 바깥의 외곽만 검출, 내부의 공백 무시
: CV_RETR_LIST = 외곽 검색 결과를 일련의 리스트로 관리, 계층 구조는 의미 없음
: CV_RETR_CCOMP = 외곽 검색 결과를 2계층으로 나누어 관리, 1층 = 바깥선, 2층 = 안선
: CV_RETR_TREE = 외곽 검색 결과를 트리구조로 관리, 루트 = 최외곽선
method = 윤곽근사방법(cv::ContourApproximationModes참조)
offset = 맥락표현
4. contourArea함수
double contourArea(InputArray contour, bool oriented=false)
contour = input vector, 2
oriented
1. true -> signed area value를 리턴
2. false -> 절댓값 리턴
... contour의 면적을 리턴하는 함수
5. erode함수
침식 연산
void erode(InputArray src, OutputArray dst, InputArray kernel, Point anchor=Point(-1, -1), int iteration = 1, int borderType=BORDER_CONSTANT, const Scalar & borderValue = morphologyDefaultBorderValue())
src = 입력 영상
dst = 결과 영상
kernel = 필터 역할 (ex_Mat(3,3, CV_8U, Scalar(1)))
iteration = 해당 연산 반복 횟수
6. distanceTransform함수
void distanceTransform(InputArray src, OutputArray dst, int distanceType, int maskSize)
src = 입력
dst = 출력
distanceType = 거리종류
maskSize = 마스크사이즈
-> Binary이미지에서, 각 픽셀에서 픽셀값이 0인 픽셀까지 가장 가까운 거리를 계산
7. minmaxIdx함수
void minmaxIdx(InputArray src, double * minVal, double *maxVal, int* minIdx = 0, int *maxIdx =0, InputArray mask = noArray())
n(n>2)차원 이상에서 사용, 2차원은 minmaxloc사용
src = 입력
minVal = 최소값 저장
maxVal = 최대값 저장
minIdx = 최소값의 위치 저장
maxIdx = 최대값의 위치 저장
8. connectedComponenetsWithStats
int connectedComponentsWithStats(InputArray image, OutputArray labels, OutputArray stats, OutputArray centroids, int connectivity = 8, int ltype= CV_32S)
return값 = label갯수
image = labeling할 입력 이미지
labels = 결과 이미지
stats = labeling된 이미지 배열
centroids = labeling 된 이미지의 중심좌표
connectivity = 4방향, 8방향
'공부일지 > Computer Vision & Image Processing' 카테고리의 다른 글
Tensorflow in Practice 1, Computer Vision (0) | 2020.06.21 |
---|---|
GAN (0) | 2020.06.02 |
OpenCV, visual studio에서 시작 (0) | 2020.05.28 |
SIFT 절차 (0) | 2020.01.28 |
scale (0) | 2020.01.28 |