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

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

by ★√★ 2021. 3. 5.

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

 

HSV-값-구현-썸네일
HSV

 

HSV (Hue, Saturation, Value)

HSV는 Hue, Saturation, Value로 색을 결정을 합니다. (Hue : 색상 - [0, 179] , Saturation : 채도 [0, 255], Value : 진하기 - [0, 255]) 좀 더 자세하게 표현하면 아래와 같습니다.

 

HSV 개별 설명 

 1) 색상 (Hue) : 색의 질입니다. 빨강색, 노랑색, 파랑색이라고 하는 표현으로 나타내는 성질이라고 이해하시면 됩니다. 

 2) 채도 (Saturation) : 색의 선명도입니다. 아무것도 섞지 않아 맑고 깨끗하며 원색에 가까운 것을 채도가 높다고 표현합니다.

 3) 명도 (Value) : 색의 밝기입니다. 명도가 높을수록 백색에, 명도가 낮을수록 흑색에 가까워집니다.  

 

BGR

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

 

코드 분석

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

 
h, s, v = cv2.split(test_image_HSV)
: HSV 형식으로 변환된 것을 각각 H,S,V 의 속성을 나눠서 h,s,v에 할당함.

 

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

# 원하는 이미지의 경로를 지정하여, 읽어옴
test_image = cv2.imread("002.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)


# 각각의 속성으로 보여줌. 분리된 채널은 단일 채널이므로 흐백의 색상으로 표현
cv2.imshow("Origianl", test_image)
cv2.imshow("Hue", h)
cv2.imshow("Saturation", s)
cv2.imshow("Value", v)

cv2.waitKey(0)
cv2.destroyAllWindows()

 

Hue, Saturation, Value 각각 출력하기

: 위의 코드를 구현하여 HSV 형태로 추출한 Type으로 이미지를 출력해보도록 하겠습니다. 원본 값과 비교하기 위해서 원본 이미지도 같이 출력하는 코드를 삽입하도록 하겠습니다. 추가로 출력한 이미지도 첨부하도록 하겠습니다.

 

 아래 출력된 내용을 보시면 각각 항목에 대한 출력 이미지를 보실 수 있습니다. (사실 저는 이 4개의 사진에 대한 뚜렷한 이해가 정립이 되지 않은 거 같습니다. 좀 더 공부를 해야 될 거 같습니다.)

 

HSV-값-구현-결과값
HSV-결과값

 

맺음말

 

: 이번 포스팅은 opencv 이용하여 불러온 이미지의 색상을 검출하기 위해서 사용하는 HSV (Hue, Saturation, Value)에 대해서 포스팅하였습니다. 사실 제가 미적 감각이 떨어져서 그런가 약간은 이해가 되지 않은 부분이 많아서 좀 더 공부를 더 해야 될 거 같습니다. 그럼 이만 마무리 하도록 하겠습니다.  감사합니다.

 

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


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

728x90

댓글


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