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

Python opencv 이용하여 이미지 Hue, Saturation, Value 값 구현 심화학습

by ★√★ 2021. 3. 5.

이번 포스팅은 기 포스팅한 HSV 값 추출하는 코드의 심화편이라고 생각하시면 됩니다. 그때 HSV 값을 추출하기 위한 코드를 이용하여 간단하게 응용 코드를 만들어 보겠습니다.

 

HSV-색깔-추출-심화학습
HSV-심화학습

 

 

HSV (Hue, Saturation, Value) 을 이용하여 원하는 색깔 추출

 HSV(Hue, Saturation, Value)를 이용하여 원하는 색깔을 추출하도록 하겠습니다. 색깔의 Range를 아직 제대로 파악하지 못하고 있어서 일단 알고 있는 오렌지 색 Range를 이용하여, 오렌지 색깔만 추출해보도록 하겠습니다.

 

코드 분석

 Before_Orang = cv2.inRange(단일 채널 , 최소값, 최대값) - 오렌지 색깔은 8~20범위라고 합니다. 
:단일 채널의 값을 이용하여 최소값, 최소값을 조정하여 Orange 색깔만 추출 

 

orange = cv2.bitwise_and(HSV 타입 변환 기존 이미지, HSV 타입 변환 기존 이미지, mask = 덮어쒸울 단일 채널 이미지)
:기존 이미지에 Orange 색깔만 추출한 이미지를 덮씌움 

orange = cv2.cvtColor(HSV 타입 이미지, cv2.COLOR_HSV2BGR)

: HSV 타입에서 BGR 타입으로 변환함 

 

# opencv 라이브러리 선언하기
import cv2

# 원하는 이미지의 경로를 지정하여, 읽어옴
test_image = cv2.imread("003.JPG", cv2.IMREAD_COLOR)

# 읽어온 이미지 BGR 형태를 HSV 형식으로 변환해줌
test_image_HSV = cv2.cvtColor(test_image, cv2.COLOR_BGR2HSV)

# H,S,V 의 속성을 나눠줌
h, s, v = cv2.split(test_image_HSV)

# 단일 채널의 값을 이용하여 최소값, 최소값을 조정하여 Orange 색깔만 추출
Before_Orang  = cv2.inRange(h, 8, 20)

# 기존 이미지에 Orange 색깔만 추출한 이미지를 덮씌움
orange = cv2.bitwise_and(test_image_HSV, test_image_HSV, mask = Before_Ornage)

# HSV 타입에서 BGR 타입으로 변환함
orange = cv2.cvtColor(orange, cv2.COLOR_HSV2BGR)

cv2.imshow("Orange_Only", orange)
cv2.waitKey(0)
cv2.destroyAllWindows()

 

 

 

Orange 색깔만 추출한 사진 출력하기

: 위의 코드를 구현을 하면 아래와 같이 오렌지 색깔만 입힌 이미지만 선명하게 나오는 걸 확인 하실 수 있습니다. 색 범위를 좀 더 공부하여 다양하게 적용해야 할 거 같습니다.

 

오렌지-색깔-추출-출력-이미지
오렌지색깔-추출-이미지

 

맺음말

 

: 기 포스팅한 HSV 값 추출하는 코드를 이용하여 원하는 색깔을 추출하는 코드를 짜봤습니다. 정말 신기하게 원하는 색깔에 맞춰서 출력이 되는 걸 확인 하실 수 있습니다. 색 Range의 구분이 아직 명확하지 않은 상태라 이 부분에 대해서 좀 더 공부를 해야 할 거 같습니다. 그럼 이만 마무리 하도록 하겠습니다.  감사합니다.

 

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


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

728x90

댓글