본문 바로가기

📜✏️노트 자리없어서 적는 IT 지식📜✏️

컴퓨터 비전(computervision) - 5주차(파이썬 연산 내용)

학교에서 기본적으로 카메라의 얼굴 영상은 사용자의 실제화면과 좌우가 바뀐 영상이다.

 

 

OpenCV에서는 배열을 옵션에 따라 여러 방향 뒤집음 배열 자체를 처리하는 함수를 제공함.

 

Cv2.flip(src, flipCode[, dst]) -> dst

입력된 2차원 배열을 수직, 수평, 양축으로 뒤집을 수 있다.

 

Repeat : 입력 배열의 반복된 복사본으로 출력 배열을 채움

Src, dst 입력배열, 출력 배열

Ny, nx 수직방향, 수평방향 반복 횟수

 

Transpose : 전치 행렬을 만듦.

 

 

 이렇게 24열을

42열 전치 행렬로 바꿀 수 있다.

 

A > AT승처럼 T를 붙이면 전치 행렬이 된다.

 

 

OpenCV에는 RGBBGR로 바꾸는데

Merge와 split을 사용해서 채널을 합치거나, 분리 할 수 있다.

 

 

---------------------2주차 ----------------------

 

행렬 연산 << 내용 알기

이런걸 원소 간 연산이라고 함.

 

 

cv2.add -> 원소 간 합을 계산

 

saturate() - 0이하는 0으로 255이상은 255로 범위를 한정시키는 연산임.

 

subtrack : 원소간 차분을 계산함 (뺄셈)

 

multiply원소 간 곱을 계산함

 

divide : 원소 간 나눗셈을 수행함.

 

addWeighted : 원소에 가중치를 곱한 후에 각 원소 간 합 즉, 가중된 합을 계산함.

 

 

논리 연산함수

 

bitwise_and() : 논리곱(AND( 연산

bitwise _OR

bitwise _XOR

bitwise _NOT 이렇게됨.

 

 

이진화(binary) : 동영상이나 이미지의 특정 값을 기준으로 값이 높거나 낮은 픽셀을 모든 펙셀에 대해 검은색 또는 흰색의 값으로 변경하는 연산

 

cv2.threshold를 쓴다.

 

 

오츠 알고리즘:  << 암기하기

입력된 이미지의 밝기 분포를 통해 최적의 임계값을 찾아 이진화를 적용하는 알고리즘

 

적응형 이진화 알고리즘 :

입력 이미지에 따라 임계값이 스스로 다른 값을 할당할 수 있도록 구성된 이진화 알고리즘

 

 

------------ 3주차 -------------

 

 

absdiff :원소 간 차분 절대값을 계산함

 

convertScaleAbs :원소에 alpha 만큼 배율을 곱하고, beta 만큼 더한 후 절대 값을 계산한 결과를 8비트 자료형으로 변환함.

 

minMaxLoc ->

입력 배열에서 최소값과 최대값, 최소값과 최대값을 갖은 원소의 위치를 반환함.

minVal, maxVal 최소값, 최대값

minLoc, maxLoc 최소값, 최대값을 갖는 원소 위치

 

 

min -> 작은 값

max -> 큰 값

 

 

최소값과 최대값을 이용해서 화질 개선 예제

 

 

cv2.reduce()에서

 

dim = 0: 한 행으로 감축

 

dim = 1 : 한열로 감축

 

AVG는 평균을 구하는 거임.

원본을 변경하지 않고 복사본 생성은 np.sort()

 

sortIdx() 함수는 행렬의 원소를 직접 정렬 x , 정렬된 원소의 원본 좌표(정렬 인덱스)를 반환하여 원소의 값이 아닌 다른 기준으로 정렬할 때 사용.

reduce()함수를 이용하면 축소하는 값을 알 수 있다.

 

dim = 0: 한 열으로 감축 (세로)

 

dim = 1 : 한 행으로 감축 (가로)

 

m, dim=0 rtype=cv2.REDUCE_SUM # 0 열 방향 축소임. 그리고 축소 값은 전부다 합하면된다.