[Visual C++]Rainbow RGB gradient



![](http://i64.tinypic.com/2uqj2va.png)
次のソースコードは、HSLカラーモデルを使用してRainbowカラーを印刷するコードです.
#include <shlwapi.h>
#pragma comment( lib, "shlwapi.lib" )  // needed for the ColorHLSToRGB() function

int hue, lum, sat;
lum = 120;
sat = 240;

for (hue=0; hue<240; ++hue){
  COLORREF rgbColor = ::ColorHLSToRGB( hue, lum, sat );
}
http://forums.codeguru.com/showthread.php?421211-Rainbow-RGB-gradient
以下のソースコードを結果と比較すると、HSLカラーモデルをよりよく理解することができる.
#include<opencv2/opencv.hpp>
#include<opencv2/highgui.hpp>

#include<vector>

#include <shlwapi.h>
#pragma comment( lib, "shlwapi.lib" )  // needed for the ColorHLSToRGB() function
int main() {
	int hue, lum, sat;
	sat = 240;
	cv::Mat img(sat,240, CV_8UC3);
	for (lum = 0; lum < 240; lum++){
		for (hue = 0; hue < sat; ++hue){
			COLORREF color = ::ColorHLSToRGB(hue, lum, sat);
			int r = GetRValue(color);
			int g = GetGValue(color);
			int b = GetBValue(color);
			img.at<cv::Vec3b>(hue,lum) = cv::Vec3b(b, g, r);
		}
	}
	cv::imshow("img", img);
	cv::waitKey();
	return EXIT_SUCCESS;
}