본문 바로가기
Computer Vision

영상의 산술 및 논리 연산 - 2. 영상의 논리 연산

by ksb0511 2020. 2. 26.

OpenCV에서 지원하는 연산은 논리곱, 논리합, 배타적 논리합, 부정으로 총 네가지 연산을 지원

입력비트 논리연산결과
a b AND OR XOR NOT a
0 0 0 0 0 1
0 1 0 1 1 1
1 0 0 1 1 0
1 1 1 1 0 0

영상의 논리 연산은 각 픽셀 값에 대해 비트 단위로 이뤄짐.

 

  1. 우선 십진수를 이진수로 표시한다.
  2. 두 이진수를 비트단위로 논리곱, 논리합, 배타적 논리합, 부정 연산을 수행하여 계산한다.

// 비트 단위 논리 연산을 수행하는 함수 네가지
void bitwise_and(InputArray src1, InputArray src2,
	OutputArray dst, InputArray mask = noArray());

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

 

  • 모두 마스크 인자를 가지고 있어서 마스크 영상의 픽셀 값이 0이 아닌 위치에서만 논리 연산을 수행하도록 설정 가능.
  • If 마스크 인자를 따로 정하지 않거나 noArray() 혹은 Mat()을 마스크 인자로 설정하면 영상 전체에 대해 논리 연산을 수행.
  • 비트 단위 논리 연산 또한 OpenCV에서 연산자 재정의를 지원함.
    • &, |, ^, ~

댓글