OpenCV cvtColor
이 기사는 cvtColor()
메소드가 하는 일과 이 메소드를 사용하여 OpenCV에서 rgb
이미지를 hsv
이미지로 변환하는 방법을 배우는 것을 목표로 합니다. 또한 hsv
이미지가 어디에 유용하고 왜 사용해야 하는지에 대해서도 논의합니다.
cvtColor()
메서드를 사용하여 OpenCV에서 HSV 이미지 생성
여기에 RGB
와 HSV
이미지의 차이를 보여주는 하나의 이미지를 추가했습니다. RGB
색상의 이미지를 고려할 때마다 각 픽셀에는 빨강, 녹색 및 파랑 색상을 나타내는 세 가지 값이 있습니다.
마찬가지로 HSV
색상 모델 이미지에서 각 픽셀은 색조, 채도 및 값의 세 가지 값으로 표시됩니다. 색조는 각도, 채도는 색상의 채도, 값은 색상의 강도를 나타냅니다.
따라서 HSV
색상 모델이 작동합니다. RGB
이미지를 HSV
이미지로 변환할 때 각 픽셀 값은 색조 채도 및 값 형식으로 변환됩니다. 우리는 이 색상 모델을 HSV
라고 부릅니다.
이 RGB
색상 모델을 HSV
색상 모델 이미지로 변환하는 방법을 살펴보겠습니다.
우선 opencv
및 numpy
패키지를 가져오고 다음 줄에서 VideoCapture()
를 사용하여 카메라에 액세스하려고 시도하고 0을 전달하므로 이 시스템의 기본 카메라에 액세스합니다. .
비디오 피드가 무엇이든 V
개체에 저장합니다.
import numpy as np
import cv2
V = cv2.VideoCapture(0)
카메라에서 비디오를 캡처하면 해당 비디오 내부의 각 프레임을 반복합니다. 이제 비디오 캡처에서 각 프레임을 읽어야 합니다. 이 프레임은 numpy
배열 형식인 비디오의 하나의 이미지일 뿐입니다.
RET, F = V.read()
cv2.imshow("BGR Frame", F)
이것은 원본 프레임이며 cvtColor()
메서드를 사용하여 프레임을 HSV
로 변환합니다. 이 방법은 다양한 색상 모델을 사용자에게 제공하며 그 중 가장 일반적인 방법은 COLOR_BGR2HSV
입니다.
cvtColor()
에 두 개의 매개변수를 전달해야 합니다. 하나는 원본 이미지이고 두 번째는 이 이미지 또는 프레임에서 수행하려는 변환 종류입니다. COLOR_BGR2HSV
메소드를 매개변수로 전달했습니다. 이는 cvtColor()
에 이 이미지 색상을 BGR
에서 HSV
로 변환하도록 지시한다는 것을 의미합니다.
import numpy as np
import cv2
V = cv2.VideoCapture(0)
while True:
RET, F = V.read()
cv2.imshow("BGR Frame", F)
HSV = cv2.cvtColor(F, cv2.COLOR_BGR2HSV)
cv2.imshow("HSV Frame", HSV)
if cv2.waitKey(1) == ord("q"):
break
V.release()
cv2.destroyAllWindows()
프로그램이 실행되고 있는 것을 볼 수 있으며 왼쪽에는 카메라에서 액세스하는 원본 콘텐츠를 BGR
형식으로 배치하고 있습니다.
오른쪽에는 색상 채도 값 이미지가 있으며 이 부분에서 특정 색상 범위에 다양한 색조가 포함되어 있습니다.
이 이미지를 HSV
형식으로 변환해야 하는 이유와 BGR
이미지를 HSV
형식으로 변환할 때의 이점에 대해 이야기해 보겠습니다.
각 영역이 다른 색조로 표현되기 때문에 모든 컴퓨터 비전이나 머신 러닝 프로젝트에서 유용합니다. 특정 색상으로 표시된 객체에만 관심이 있다면 나머지 색상 영역은 무시하고 해당 색상 영역의 특정 부분만 추출하면 됩니다.
Hello! I am Salman Bin Mehmood(Baum), a software developer and I help organizations, address complex problems. My expertise lies within back-end, data science and machine learning. I am a lifelong learner, currently working on metaverse, and enrolled in a course building an AI application with python. I love solving problems and developing bug-free software for people. I write content related to python and hot Technologies.
LinkedIn