[Visual C++]Rainbow RGB gradient

spring·2020년 11월 9일
0
![](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;
}
profile
Researcher & Developer @ NAVER Corp | Designer @ HONGIK Univ.

0개의 댓글