引き続き、OpenCvSharpネタです。
CvtColor関数で、通常のRGB色空間の画像データから、HSV色空間のデータに変換できます。
このサンプルでは、読み込んだ画像をHSV色空間に変換した後、H, S, Vの各チャンネルを分割し、それぞれの成分ごとのモノクロ画像を生成して表示しています。
staticvoid Main(string[] args) { using (var src = new Mat(@"Images/1.jpg")) using (var hsv = new Mat()) { //Cv2.CvtColor(src, hsv, ColorConversionCodes.BGR2HSV); // こうすると、H(彩度)は0~180の範囲の値になる Cv2.CvtColor(src, hsv, ColorConversionCodes.BGR2HSV_FULL); // こちらは、H(彩度)は0~255の範囲の値になる// HSV色空間の画像を、各チャンネルごとに分割 var channels = Cv2.Split(hsv); // それぞれの画像をウィンドウ表示using (var srcWin = new Window("original image", src)) using (var hsvWin = new Window("hsv image", hsv)) using (var hueWin = new Window("hue image", channels[0])) using (var satWin = new Window("saturation image", channels[1])) using (var valWin = new Window("value image", channels[2])) { Cv2.WaitKey(); } } }