8주차-OpenCV(2)

Chan·2021년 6월 1일

hancom

목록 보기
16/45

OpenCV

  • 기본배열 처리
    flip, repeat, transpose

  • 채널 처리
    merge, split
    split으로 red, green, blue 각각의 채널원소로 나눠서 가져오면, 밝은 쪽이 그 채널에 맞는 색

  • 산술 연산
    add, subtract, multiply, divide, addWeighted
    마스킹 많이 사용

  • 지수로그 연산
    exp, log, sqrt, magnitude, phase, cartToPolar, polatToCart

  • 비트 연산
    bitwise_and, bitwise_or, bitwise_xor, bitwise_not, threshold

  • 차분 절댓값, 최솟값, 최댓값 연산
    absolute, absdiff, min, max, minMaxLoc

  • 통계 관련(합, 평균, 표준편차)
    sumElems, mean, meanStdDev, countNonZero, reduce, sort, sortIdx
    cv2.sort - 행/열 단위 오름차/내림차
    np.sort - x,y축 정렬
    cv2가 np보다 속도 더 빠름, cv2 많이 사용하자

  • 행렬 연산
    gemm (행렬 내적, 회전변환), perspectiveTransform(투영변환-영상왜곡보정-딥러닝에사용), invert(역행렬), solve(연립방정식, 최소제곱법 해결)

  • 영상밝기의 가감연산

  • 영상합성

  • 명암대비

  • 히스토그램 (도수분포표를 그래프로 나타낸것)
    calcHist()
    HSV - Hue(색조), Saturation(채도), Value(명도)
    Hue 히스토그램 - 색상 히스토그램
    히스토그램 stretching - 히스토그램 범위 늘리기
    히스토그램 equalization - 한쪽으로 치우친 명암분포를 재분배를 통해 균등한분포로 만듬

  • 히스토그램 stretching
    새 화소값 = (화소값-low) / (high-low) * 255

  • 히스토그램 equalization

  1. 영상의 히스토그램 계산
  2. 히스토그램 빈도값에서 누적 빈도수(누적합)를 계산
  3. 누적 빈도수를 정규화(정규화 누적합)
  4. 결과 화소값 = 정규화 누적합 * 최대 화소값
  • 컬러공간변환
    BGR, CMYK, HSV, HSI, YUV, YCbCr 등등

  • 컨볼루션
    컨볼루션 - 화소 값 = 자기포함주변 화소값 * 마스킹 (다 더한거)
    컨볼루션 결과 - 마스킹 값에 따라 달라짐

블러링 (주변 화소 간의 급격한 차이가 스무스해짐)
샤프닝 (주변 화소 간의 차이를 급격하게 만듬)
에지 검출 - 로버츠 마스크, 프리윗 마스크, 소벨 마스크
라플라시안 마스크(노이즈민감), LoG(마스크가 가우시안분포(표준정규분포) -> 부드러운 블러링으로 노이즈제거), DoG(LoG 보완, 방법 단순화)

☆ 캐니 에지 검출
1. 블러링을 통한 노이즈 제거 (가우시안 블러링)
2. 화소 기울기의 강도와 방향 검출 (소벨 마스크)
3. 비최대치 억제
4. 이력 임계값으로 에지 결정

profile
Backend Web Developer

0개의 댓글