zoj 1067 Color Me Less

本文介绍了一个使用C++实现的颜色匹配算法,通过输入的颜色值在预设的色谱库中找到最接近的颜色匹配。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include "iostream"
#include "vector"
using namespace std;

struct color
{
	int R;
	int G;
	int B;
};

int main()
{
	int i;
	color input;
	vector<color> v;
	vector<color>::iterator it;
	for (i = 0; i < 16; i++)
	{
		cin >> input.R >> input.G >> input.B;
		v.push_back(input);
	}

	while (cin >> input.R >> input.G >> input.B && input.R != -1 && input.G != -1 && input.B != -1)
	{
		int temp, ans = 255 * 255 + 255 * 255 + 255 * 255;
		color a;
		for (it = v.begin(); it != v.end(); it++)
		{
			temp = (input.R - (*it).R) * (input.R - (*it).R) + (input.G - (*it).G) * (input.G - (*it).G) + (input.B - (*it).B) * (input.B - (*it).B);
			if (temp < ans)
			{
				ans = temp;
				a.R = (*it).R;
				a.G = (*it).G;
				a.B = (*it).B;
			}
		}
		cout << "(" << input.R << "," << input.G << "," << input.B << ")" << " maps to " << "(" << a.R << "," << a.G << "," << a.B << ")" << endl;
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值