본문 바로가기
파이썬 (Python)/딥러닝 (Deep Learning)

Python opencv 이용하여 이미지 채널 범위 병합하는 방법

by ★√★ 2021. 3. 5.

안녕하세요, Davey입니다. 오늘 포스팅할 내용은 opencv로 HSV 값을 추출하고 추출한 다중 값을 합치는 코드를 작성하려고 합니다. 이 부분은 이전 HSV 관련 내용으로 포스팅한 내용을 보시고 오는 걸 추천 드립니다.

 

 

 

 

HSV-병합-이미지
HSV-병합-이미지

 

 

opencv를 이용하여 채널 범위 병합(addWeighted)

'addWeighted'는 영상이나 이미지를 색상 검출할 때 cv2.inRange()의 영역이 한정되어 색상을 선정하는 것이 한정되어 있기 때문에 병합을 위해서 사용하는 것으로 이해하시면 됩니다. (이 부분은 지금 공부하면서도 약간 애매해서 더 공부는 해봐야 될 거 같습니다. ) 병합 작업을 위해서 병합 효과를 줄 이미지를 불러와야 합니다. 이 부분에 대한 코드와 채널 범위 병합하는 것에 대해서 설명 드리도록 하겠습니다.

 

 

 

코드 분석

- cv2.inRange(다채널 이미지, (채널1 최솟값, 채널2 최솟값, 채널3 최솟값), (채널1 최댓값, 채널2 최댓값, 채널3 최댓값))

1) 빨간색 영역 : 0 ~ 5, 170 ~ 180 범위로 두부분으로 나뉘어져 있는 상황

2) 한개의 채널이 아닌 각각의 h, s, v 채널 범위를 를 한 번에 설정

 

- cv2.addWeighted(이미지1, 이미지1 비율, 이미지2, 이미지2 비율, 가중치)

1) cv2.inRange() 두 개로 분리되어 있는 채널을 하나로 합치는 코드

2) 분리된 이미지의 채널을 그대로 합칠 예정이므로 각각의 비율은 1.0으로 사용

3) 가중치는 사용하지 않음 (0.0)

 

이전 포스팅한 내용에서는 단일 채널로 하였다면 이번에는 다중 채널이라고 생각하시면 됩니다. 그래서 그런가 색의 범위를 공부는 하고 있는데 헷갈리는 점이 없는 건 아닌 거 같습니다. 다중 채널의 코드지만 이 부분을 수정하여 단일 채널간의 병합도 가능합니다.

 

추가내용

: opencv는 150가지 이상의 색공간 변경 메소드를 제고하고 있습니다. 하지만 주로 사용되는 것은 BGR-GRAY, BGR-HSV 색공간 변경 방법입니다. 

 

 1) BGR은 Blue, Green, Red 값으로 하나의 색을 결정하는 것입니다. (Blue - [255,0,0], Green - [0,255,0], Red - [0,0,255]

 2) HSV는 Hue, Saturation, Value로 색을 결정을 합니다. (Hue : 색상 - [0, 179] , Saturation : 채도 [0, 255], Value : 진하기 - [0, 255])

 

 3) BGR vs HSV

 HSV for Blue : (120, 255, 255)

 HSV for Green : (60, 255, 255)

 HSV for Red : (0, 255,255)

 

HSV관련 기초 이론으로 포스팅한 내용도 참조하시면 도움이 되실 거 같습니다. 링크는 아래와 같습니다. 

 

Python opencv 이용하여 이미지 Hue, Saturation, Value 값 구현하는 방법

안녕하세요, Davey입니다. 오늘 포스팅할 내용은 opencv로 원하는 이미지의 색상을 검출하기 위해서 사용하는 HSV (Hue, Saturation, Value)에 대해서 포스팅 하도록 하겠습니다. HSV (Hue, Saturation, Value) :..

davey.tistory.com

 

채널 병합한 이미지 출려하기

: 위의 코드를 구현하여 다중 채널의 이미지를 합쳐서 출력해보도록 하겠습니다. 비교를 위해서 원본 이미지도 같이 출력하도록 하겠습니다.

 

HSV-병합-결과-이미지
병합-이미지

 

맺음말

맺음말

: 이번 포스팅은 opencv 이용하여 불러온 이미지를 흐리게 하는 효과를 주는 방법에  대해서 설명 드렸습니다. 흐림효과를 이용하여 모자이크를 효과를 줄려고 하는 건지에 대해서는 추가적으로 공부해봐야 될 거 같습니다. 그럼 이만 마무리 하도록 하겠습니다.  감사합니다.

 

제 Posting이 조금이나마 정보 전달에 도움이 되셨길 빌며, 되셨다면, 구독, 댓글, 공감 3종 세트 부탁 드립니다. 감사합니다.


[저작권이나권리를 침해한 사항이 있으면 언제든지 Comment 부탁 드립니다검토  수정  삭제 조치 하도록 하겠습니다그리고기재되는 내용은 개인적으로 습득한 내용이므로 오류가 발생할  있을 가능성이 있으므로기재된 내용은 참조용으로만 봐주시길 바랍니다게시물에오류가 있을때도, Comment 달아 주시면검증 결과를 통해수정하도록 하겠습니다.]

728x90

댓글


// 내부링크를 현재창으로 열기 // Open internal links in same tab