OpenCV cvtColor

Salman Mehmood 2024년2월15일
OpenCV cvtColor

이 기사는 cvtColor() 메소드가 하는 일과 이 메소드를 사용하여 OpenCV에서 rgb 이미지를 hsv 이미지로 변환하는 방법을 배우는 것을 목표로 합니다. 또한 hsv 이미지가 어디에 유용하고 왜 사용해야 하는지에 대해서도 논의합니다.

cvtColor() 메서드를 사용하여 OpenCV에서 HSV 이미지 생성

여기에 RGBHSV 이미지의 차이를 보여주는 하나의 이미지를 추가했습니다. RGB 색상의 이미지를 고려할 때마다 각 픽셀에는 빨강, 녹색 및 파랑 색상을 나타내는 세 가지 값이 있습니다.

RGB 및 HSV 이미지

마찬가지로 HSV 색상 모델 이미지에서 각 픽셀은 색조, 채도 및 값의 세 가지 값으로 표시됩니다. 색조는 각도, 채도는 색상의 채도, 값은 색상의 강도를 나타냅니다.

따라서 HSV 색상 모델이 작동합니다. RGB 이미지를 HSV 이미지로 변환할 때 각 픽셀 값은 색조 채도 및 값 형식으로 변환됩니다. 우리는 이 색상 모델을 HSV라고 부릅니다.

RGB 색상 모델을 HSV 색상 모델 이미지로 변환하는 방법을 살펴보겠습니다.

우선 opencvnumpy 패키지를 가져오고 다음 줄에서 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 형식으로 배치하고 있습니다.

오른쪽에는 색상 채도 값 이미지가 있으며 이 부분에서 특정 색상 범위에 다양한 색조가 포함되어 있습니다.

cvtColor 메서드를 사용하여 OpenCV에서 HSV 이미지 만들기

이 이미지를 HSV 형식으로 변환해야 하는 이유와 BGR 이미지를 HSV 형식으로 변환할 때의 이점에 대해 이야기해 보겠습니다.

각 영역이 다른 색조로 표현되기 때문에 모든 컴퓨터 비전이나 머신 러닝 프로젝트에서 유용합니다. 특정 색상으로 표시된 객체에만 관심이 있다면 나머지 색상 영역은 무시하고 해당 색상 영역의 특정 부분만 추출하면 됩니다.

Salman Mehmood avatar Salman Mehmood avatar

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

관련 문장 - Python OpenCV