관리 메뉴

ComputerVision Jack

[컴퓨터 비전 - 영상의 연산] 본문

Image Processing/Computer Vision

[컴퓨터 비전 - 영상의 연산]

JackYoon 2020. 1. 22. 18:47
반응형

영상의 산술 연산

영상은 2차원 행렬이기 때문에 행렬의 산술 연산(arithmetic operation)을 적용할 수 있다.

두 개의 영상을 더하거나 빼는 연산을 수행하여 새로운 결과를 얻을 수 있다.

곱하기 나누기 연산은 거의 사용하지 않는다.

 

영상 더하기 : dst(x, y) = src1(x, y) + src2(x, y)

영상 더하기 수행시 그레이스케일 최댓값 255보다 커지는 경우가 발생할 수 있다.

dst(x, y) = saturate(src1(x, y) + src2(x, y))

포화 연산을 수행해 준다.

 

void add(InputArray src1, InputArray src2, OutputArray dst, InputArray mask = noArray(), int dtype = -1);

#영상의 더하기 수행하는 함수

 

두영상에 가중치를 부여하여 덧셈을 할 수 있다.

dst(x, y) = saturate(a * src1(x, y) + b * src2(x, y)) - a + b = 1

 

void addWeighted(InputArray src1, double alpha, InputArray src2, double beta, double gamma,

                                   OutputArray dst, int dtype = -1);

#두 영상의 가중치 합을 구하는 함수

 

영상 빼기 : dst(x, y) = saturate(sr1(x, y) - src2(x, y))

뺄셈의 결과도 0보다 작아지는 경우가 발생할 수 있기 때문에 포화연산을 적용한다.

 

void subtract(InputArray src1, InputArray src2, OutputArray dst, InputArray mask = noArray(), int dtype = -1);

#영상의 뺄셈을 수행하는 함수

 

두 영상의 타입이 같은 경우 -연산자 재정의를 사요해도 된다.

 

차이연산 : dst(x, y) = |src1(x, y) - src2(x, y)|

뺄셈순서 상관없이 픽셀 값 차이가 큰 영역을 두드러지게 나타내고 싶은 경우

 

void absdiff(InputArray src1, InputArray src2, OutputArray dst);

#차영상을 구하는 함수

영상의 뺄셈 연산

cctv경우 동영상을 읽어와 원래의 frame과 지난 frame의 차 영상을 통해서 친입자를 예측할 수 있다.

영상의 논리 연산

픽셀 값을 이진수로 표현하여 각 비트(bit)단위 논리 연산을 수행하는 것을 의미함

논리 연산

void bitwise_논리연산(InputArray src1, InputArray src2, OutputArray dst, InputArray mask = noArray());

#영상의 논리연산을 수행하는 함수

 

void bitwise_not(InputArray src1, OutputArray dst, InputArray mask = noArray());

#not 연산의 경우만 하나의 영상을 입력으로 받는다.

영상의 논리연산1
영상의 논리연산2

 

반응형
Comments