본문 바로가기

데이터 청년 캠퍼스(경남대학교)/스터디

2021-07-05

컴퓨터 비전 첫 시간

 

과제로 HSV space equalization 하기

 

제일 먼저 아나콘다 프롬프트창에서

pip install opencv-python 설치

 

import cv2
import numpy as np
import matplotlib.pyplot as plt

필요한 모듈 불러오기

 

HSV equalization하기 전에 이미지 불러오는 방법?

img_basic = cv2.imread('cat.jpg', cv2.IMREAD_COLOR)
plt.imshow(cv2.cvtColor(img_basic, cv2.COLOR_BGR2RGB))
plt.show()

다음은 흑백 이미지 불러오는 방법

img_basic = cv2.cvtColor(img_basic, cv2.COLOR_BGR2GRAY)
plt.imshow(cv2.cvtColor(img_basic, cv2.COLOR_GRAY2RGB))
plt.show()

HSV space equalization

import cv2
import numpy as np
import argparse
import os
import matplotlib.pyplot as plt

# ap = argparse.ArgumentParser()
# ap.add_argument("-i", "--image", required=True, help="Image path to the directory")
# args = vars(ap.parse_args())
# path = args['image']

path = "cat.jpg"

# 입력 받은 이미지를 불러옵니다.
src = cv2.imread(path)

# hsv 컬러 형태로 변형합니다.
hsv = cv2.cvtColor(src, cv2.COLOR_BGR2HSV)
# h, s, v로 컬러 영상을 분리 합니다. 
h, s, v = cv2.split(hsv)
# v값을 히스토그램 평활화를 합니다.
equalizedV = cv2.equalizeHist(v)
# h,s,equalizedV를 합쳐서 새로운 hsv 이미지를 만듭니다.
hsv2 = cv2.merge([h,s,equalizedV])
# 마지막으로 hsv2를 다시 BGR 형태로 변경합니다.
hsvDst = cv2.cvtColor(hsv2, cv2.COLOR_HSV2BGR)

equalizedS = cv2.equalizeHist(s)
equalizedV = cv2.equalizeHist(v)
hsv3 = cv2.merge([h, equalizedS, equalizedV])
hsvSV = cv2.cvtColor(hsv3, cv2.COLOR_HSV2BGR)

equalizedH = cv2.equalizeHist(h)
equalizedS = cv2.equalizeHist(s)
equalizedV = cv2.equalizeHist(v)
hsv4 = cv2.merge([equalizedH, equalizedS, equalizedV])
hsvHSV = cv2.cvtColor(hsv4, cv2.COLOR_HSV2BGR)

# src, hsv, YCrCb 각각을 출력합니다.
cv2.imshow('src', src)
cv2.imshow('V equalize', hsvDst)
cv2.imshow('SV equalze', hsvSV)
cv2.imshow('HSV equalize', hsvHSV)
#cv2.imshow('YCrCb dst', yCrCbDst)
cv2.waitKey()
cv2.destroyAllWindows()

코드는 https://gaussian37.github.io/vision-opencv-equalizeHist/ 참고

'데이터 청년 캠퍼스(경남대학교) > 스터디' 카테고리의 다른 글

2021-07-12  (0) 2021.07.12
2021 - 07 - 07  (0) 2021.07.07
2021-07-06  (0) 2021.07.06
2021-07-01  (0) 2021.07.02
2021 - 06 - 30  (0) 2021.07.01