تبدیل در فضای رنگی RGB - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

تبدیل در فضای رنگی RGB

+1 امتیاز
سلام و شب بخیر.

من برای یک کاری که به کرات هم انجام میشه میخام رنگ ها را توی فضای رنگی RGB به صورت درصدی به یکدیگر تبدیل کنم .به طور مثال خدمت شما عرض کنم فرض کنید شما رنگ زرد دارید حالا بایستی در 5 مرحله رنگ زرد را به صورتی تبدیل کنید این 5 تا رنگ را نیاز داریم .

پیشاپیش ممنون از دوستانی که راهنمایی می کنند.
سوال شده اسفند 2, 1392  بوسیله ی خمیده (امتیاز 96)   9 17 25

1 پاسخ

+4 امتیاز
 
بهترین پاسخ

به این صورت عمل کنید.

#include "opencv2/highgui/highgui.hpp"

#include "opencv2/contrib/contrib.hpp"
Scalar bhConvertColor(const Scalar &color1,const Scalar &color2,uchar cof)
{
	Scalar dis_color;
	for (int i=0;i < 3;i++)
		dis_color.val[i] = (color2.val[i] - color1.val[i]) / 255.0 ;

	Scalar result;


	for (int i=0; i < 3;i++)
		result.val[i] = color1.val[i] + dis_color.val[i] * cof; 

	result.val[3] = 0;
	return result;

}

int _tmain(int argc, char* argv[])
{
	Scalar yellow_color = CV_RGB(255,255,0);
	Scalar ping_color = CV_RGB(255,0,255);

	Mat img(500,500,CV_8UC3,yellow_color);

	int step = 255 /5;
	for (size_t i=0; i <= 255;i += step){
		Scalar color= bhConvertColor(yellow_color,ping_color,i);
		img.setTo(color);
		imshow("view",img);
		waitKey(0);

	}
return 0;
}

 

پاسخ داده شده اسفند 6, 1392 بوسیله ی مصطفی ساتکی (امتیاز 21,998)   24 34 75
انتخاب شد اسفند 7, 1392 بوسیله ی خمیده
...