본문 바로가기
Study(Data Analysis, OpenCV, Python, AI)/OpenCV-Python

5. 기본 배열 연산(Operation)함수

by emergensaur 2024. 4. 28.

기본 배열 처리 함수

cv2.flip(src, flipCode[,dst])→dst

입력된 2차원 배열을 수직, 수평, 양축으로 뒤집는다.  src,dst=입력 배열, 출력배열, flipCode=배열을 뒤집는 축 

- 0: x축을 기준으로 위아래로 뒤집는다. 

- 1: y축기준 좌우로 뒤집는다. 

--1:양축(x축, y축 모두)을 기준으로 뒤집는다. 

cv2.repeat(src, ny, nx[,dst])→dst 

입력 배열의 반복된 복사본으로 출력 배열을 채운다. src,dst=입력 배열, 출력 배열 ny, nx= 수직방향, 수평방향 반복횟수

cv2.transpose(src[,dst])→dst 

입력행렬의 전치 행렬을 출력으로 반환한다. src, dst 입력 배열, 출력 배열

 채널 처리 함수 

cv2.merge(mv[,dst])→dst

여러 개의 단일 채널 배열을 다채널 배열로 합성한다. mv: 합성될 입력 배열 혹은 벡터, 합성될 단일 채널 배열들의 크기와 깊이가 동일해야 한다. dst: 입력 배열과 같은 깊이의 출력 배열 

cv2.split(m[,mv])→mv

다채널 배열 여러 개의 단일채널 배열로 분리한다. m: 입력되는 다채널 배열, mv: 분리되어 반환되는 배열들의 벡터 

사칙 연산 함수

cv2.add(src1, src2[,dst[,mask[,dtype]]])→dst

두개의 배열 혹은 배열과 스칼라의 각 원소간 합을 계산한다. 입력인수 src1, src2 중 하나는 스칼라값임을 알 수 있다. 

src1 : 첫 번째 입력 배열 혹은 스칼라

src2: 두 번째 입력 배열 혹은 스칼라

dst: 계산된 결과의 출력 배열 

mask: 연산마스크: 0이 마스크 위치만 연산 수행(8비트 단일 채널) 

dtype:출력 배열의 깊이

cv2.substract(src1, src2[,dst[,mask[,dtype]]]) →dst

두 개의 배열 혹은 배열과 스칼라의 각 원소간 차분을 계산한다. add()함수의 인수와 동일하다. 

cv2.multiply(src1, src2[,dst[,mask[,dtype]]]) →dst

두 배열의 각 원소간 곱을 계산한다. 

cv2.divide(scale, src2[, dst[,scale[,dtype]]]) →dst

두 배열각 각 원소간 나눗셈 

cv2.addWeighted(src1, alpha, src2, beta, gamma[, dst[,dtype]]) →dst

두 배열의 각 원소에 가중치를 곱한 후에 각 원소간 합 즉, 가중된(weighted)합을 계산한다. 

cv2.exp(src[,dst])→dst 

모든 배열의 원소의 지수(exponent)를 계산한다 . src, 입력 배열과 입력 배열 같은 크기와 타입의 출력배열 dst 출력

cv2.log(src[,dst])→dst 

모든 배열 원소의 절대값에 대한 자연로그를 계산함

cv2.sqrt(src[,dst])→dst 

모든 배열 원소에 대한 제곱근 계산 

cv2.pow(src, power[,dst])→dst 

모든 배열 원소에 대한 제곱 승수를 계산한다 .

cv2.magnitude(x, y[, magnitude])→magnitude 

2차원 배열들의 크기를 계산한다. 

cv2.phase(x, y[, angle[,angleInDegrees]])→angle

2차원 배열의 회전 각도를 계산한다.

cv2.cartToPolar(x,y,[,magnitude[, angle[, angleInDegrees]]])→magnitude, angle 

2차원 배열들의 크기와 각도를 계산한다.

cv2.polarToCart(magnitude, angle[, x,[y[, angleInDegrees]]])→x, y

각도와 크기로 부터 2차원 배열들의 좌표를 계산한다. 

 

논리 비트 연산 함수 

cv2.bitwise_and(src1, src2[,dst[,mask]])→dst

두 배열의 원소간 혹은 배열원소와 스칼라 간의 비트(bit-wise)논리 곱 연산을 수행한다. 입력인수 src1, src2 중 하나는 스칼라 값일 수 있다. 

cv2.bitwise_or (src1, src2[,dst[,mask]])→dst

두 배열 원소간 혹은 배열원소와 스칼라 간의 각 비트별 논리 합을 진행한다. 

cv2.bitwise_xor (src1, src2[,dst[,mask]])→dst

두 개의 배열 원소간 혹은 배열 원소와 스칼라 간의 비트별 배타적 논리합 연산을 수행한다.

cv2.bitwise_not(src[,dst[,mask]])→dst 

입력 배열의 모든 원소마다 비트 보수연산을 한다. 쉽게 말하자면 반전시킨다. 

src1 입력 배열들 , dst 출력 배열, 마스크 연산 수행하고 마스크 배열의 원소가 0이 아닌 좌표만 계산 수행한다.

cv2.absdiff(src1, src2[,dst])→dst 

연산을 차분(빼다 보면 음수가 나오는데 특정원소에서 음수값이 나오면 0으로 만들어 검은색이 되어 원하는 값을 못얻을 수 있는데 이를 처리할 때 절댓값연산을 사용한다. 

두 배열간 각 원소간(per-element) 차분 절댓값을 계산한다. src1, src2중 하나는 스칼라 값이 될 수 있다. 

cv2.convertScaleAbs(src[,dst[, alpha[,beta]]])→dst

 입력 배열의 각 원소에서 alpha 만큼 배율을 곱하고 beta 만큼 더한 후에 절댓값을 계산한 결과를 8비트 자료형으로 변환한다. 입력 배열 각 원소에 곱해지는 스케일 팩터와 스케일 된 값에 더해지는 델타옵션 

 

원소의 최소값 최댓값 

cv2.min(src1, src2[,dst])→dst

두 입력 배열의 원소간 비교해 작은 값을 출력 배열로 반환한다. 

cv2.max(src1, src2[,dst])→dst 

두 입력 배열의 원소 간 비교하여 큰 값을 배열로 반환한다. 

cv2.minMaxLoc(src[, mask])→minVal, maxVal, minLoc, maxLoc

입력 배열에서 최솟값과 최댓값 최솟값과 최댓값을 갖는 원소 위치를 반환한다. 

최소-최대값으로 차이가 적은 경우 영상의 화질을 개선하는 것이 가능하다 .

 

통계 관련 함수

cv2.sumElems(src)→retval

배열의 각 채널 별로 원소들의 합을 계산해서 스칼라 값으로 반환한다. 

cv2.mean(src[,mask])→retval 

배열의 각 채널별로 원소들의 평균을 계산해서 스칼라 값으로 반환한다. 

cv2.meanStdDev(src[, mean[,stddev[,mask]]])→mean,stddev

배열 원소들의 평균과 표준편차를 계산한다. 마스크는 연산할 때 0이 아닌 좌표만 연산 수행한다. 

cv2.countNonZero(src)→retval

0이 아닌 배열의 원소의 개수 N을 반환한다. 

cv2.reduce(src, dim, rtype[,dst[,dtype]])→dst

행렬을 열방향/행방향으로 옵션 상수에 따라 축소한다.  dim은 차원 감소 첨자 0일 때는 열 1일 때는 행 방향 축소

src 2차원 입력 배열, dst출력 벡터, dim 행렬이 축소 될 때 차원 감소 첨자. 

cv2.sort(src, flags[,dst])→dst

행렬의 각 행 혹은 각 열의 방향으로 정렬한다. flags 연산 플래그로 cv2.~~의 상수 형식으로 사용한다. 

cv2.sortIdx(src, flags[,dst])→dst 

행렬의 각 행 혹은 각 열로 정렬한다. 출력 배열(dst)에 정렬된 원소의 첨자들을 저장한다. 인수는 cv2.sort()와 동일하다. 

행렬 연산 함수 

cv2.gemm(src1, src2, alpha, src3, beta[, dst[,flags]])→dst 

일반화된 행렬의 곱셈을 수행한다. 

src 1,2 행렬 곱 위한 두 행렬 src 3 더해지는 델타 행렬 , alpha 행렬곱에 대한 가중치, dst 출력 행렬, flag 연산 플래그 

cv2.perspectiveTransform(src, m[,dst])→dst 

입력 벡터들에 대해서 투영 변환 m을 수행한다. src는 변환될 부동 소수점 배열 dst는 src와 같은 크기와 타입의 출력 배열 

cv2.invert(src[,dst[,flags]])→retval, dst 

행렬의 역행렬을 계산한다 .

cv2.solve(src1, src2[,dst[,flags]]) →retval, dst 

연립 방정식이나 최소 자승 문제를 해결한다. src1 은 계수 행렬 src2는 상수 행렬