색상 공간 프로토콜을 사용하여 이미지의 색상을 표현할 수 있습니다. OpenCV에서 사용할 수 있는 몇 가지 색 공간이 있습니다. 그 중 일부는 −
-
BGR - RGB는 여기에서 가장 널리 사용되는 색 공간이며 각 픽셀은 실제로 빨강, 파랑 및 녹색의 세 가지 다른 색(강도) 값으로 구성되며 OpenCV의 기본 색 공간이지만 BGR로 저장됩니다.
-
HSV − HSV 색 공간에서는 색조, 채도 및 밝기를 변경하여 다른 색을 형성합니다.
-
CMK − 이것은 빼기 색 공간이며 흰색에서 시작하여 시안, 마젠타 및 노란색 값을 빼서 다른 색상이 형성됩니다.
-
Y'UV − Y'UV는 하나의 루마(Y')와 두 개의 색차(UV) 구성 요소로 색 공간을 정의합니다. Y'UV 컬러 모델은 다음 합성 컬러 비디오 표준에서 사용됩니다.
cvtColor()를 사용하여 이미지 표현을 한 색상 공간에서 다른 색상 공간으로 변환할 수 있습니다. org.opencv.imgproc.Imgproc 메소드 수업. 이 메서드는 소스 이미지, 대상 이미지 및 대상 이미지의 색상을 나타내는 코드를 받습니다.
색 공간을 BGR에서 HSV로 변경하려면 COLOR_BGR2HSV를 전달해야 합니다. 색상 코드 값으로. 마찬가지로 색상 공간을 BGR에서 YUV로 변경하려면 COLOR_BGR2YUV를 전달해야 합니다. 색상 코드로.
예
import org.opencv.core.Core; import org.opencv.core.Mat; import org.opencv.highgui.HighGui; import org.opencv.imgcodecs.Imgcodecs; import org.opencv.imgproc.Imgproc; public class ChangingColorSpaces { public static void main(String args[]) throws Exception { //Loading the OpenCV core library System.loadLibrary( Core.NATIVE_LIBRARY_NAME ); //Reading the image Mat src = Imgcodecs.imread("D:\\images\\elephant.jpg"); //Creating the empty destination matrix Mat dst = new Mat(); //Converting From BGR to Gray Imgproc.cvtColor(src, dst, Imgproc.COLOR_BGR2GRAY); HighGui.imshow("BGR to Gray", dst); dst = new Mat(); //Converting From BGR to HSV Imgproc.cvtColor(src, dst, Imgproc.COLOR_BGR2HSV); HighGui.imshow("BGR to HSV", dst); dst = new Mat(); //Converting From BGR to HSV Imgproc.cvtColor(src, dst, Imgproc.COLOR_RGB2YUV); HighGui.imshow("BGR to YUV", dst); HighGui.waitKey(); } }
입력 이미지
출력
실행 시 위의 프로그램은 다음 창을 생성합니다. -
BGR에서 회색으로 -
BGR에서 HSV로 -
BGR에서 YUV로 -