비트 연산(Bitwise)
Bitwise
를 사용하여 영상이나 이미지를 비트 연산을 할 수 있습니다.
Mat
형식의 이미지를 사용합니다.
원본(Source, src)
은 영상이나 이미지를 사용합니다.
메인 코드
세부 코드
Bitwise
함수를 사용하기 위해서는 네임스페이스에 using OpenCvSharp.CPlusPlus;
를 선언해야 사용할 수 있습니다.
Mat
형식의 이미지를 생성합니다.
new Mat(IplImage)
를 이용하면 IplImage
형식의 이미지를 Mat
형식으로 변경할 수 있습니다.
m_src
는 비트 연산에 사용할 이미지1
입니다.
m_src2
는 비트 연산에 사용할 이미지2
입니다.
이미지2
는 이미지1에 이진화를 적용한 이미지입니다.
bitwise
는 비트 연산이 적용된 결과 이미지
입니다.
Window win
을 이용하여 m_src
와 m_src2
를 출력합니다.
And 연산
Cv2.BitwiseAnd()
를 이용하여 And
연산을 실행합니다.
Cv2.BitwiseAnd(이미지1, 이미지2, 결과, 마스크)
입니다.
이미지2
가 흑백 이미지 일 경우, 이미지2
의 흰색 부분만 출력합니다.
Or 연산
Cv2.BitwiseOr()
를 이용하여 Or
연산을 실행합니다.
Cv2.BitwiseOr(이미지1, 이미지2, 결과, 마스크)
입니다.
이미지2
가 흑백 이미지 일 경우, 이미지2
의 검은색 부분만 출력합니다.
Xor 연산
Cv2.BitwiseXor()
를 이용하여 Xor
연산을 실행합니다.
Cv2.BitwiseXor(이미지1, 이미지2, 결과, 마스크)
입니다.
이미지2
가 흑백 이미지 일 경우, 이미지2
의 검은색 부분만 출력하며, 흰색 부분은 반전 출력합니다.
Not 연산
Cv2.BitwiseNot()
를 이용하여 Not
연산을 실행합니다.
Cv2.BitwiseNot(이미지, 결과, 마스크)
입니다.
이미지
가 흑백 이미지 일 경우, 반전 시켜 출력합니다.
- Tip : 비트 연산에 사용되는 모든 이미지는
Mat
형식을 사용합니다.
- Tip :
이미지1
의 경우 채널이 3 이며, 이미지2
의 경우 채널이 1 입니다.
- Tip :
이미지2
의 경우, 이미지1
과 채널이 다르므로 m_src.CvtColor(ColorConversion.GrayToBgr)
을 이용하여 3개의 채널을 가지는 이미지로 즉각 변환이 가능합니다.
- Tip :
마스크
를 사용하지 않는 경우 생략이 가능합니다.
- Tip :
이미지1
, 이미지2
, 결과
, 마스크
이미지들의 크기는 모두 같아야합니다.
출력 결과
댓글 남기기