Гистограмма CMYK/RGB - некорректный перевод из CMYK в RGB - C#
Формулировка задачи:
Возникла проблема с правильностью перевода из RGB в CMYK. Все переменные до самого конца - double, но при этом расчёты будто ведёт пьяный Вася, а не точный компьютер. Совершенно странные числа, совсем не по моим формулам.
Помогите разобраться, где ошибка в расчётах.
За формулу перевода использовал формулы: http://www.easyrgb.com/index.php?X=MATH&H=13#text13
Прикрепил также полную версию проекта.
color = img.GetPixel(i, j);
double Rt = color.R;
double Gt = color.G;
double Bt = color.B;
double Ccount = 1.00 - (Rt / 255);
double Mcount = 1.00 - (Gt / 255);
double Ycount = 1.00 - (Bt / 255);
double var_K = 1;
if (Ccount < var_K) var_K = Ccount;
if (Mcount < var_K) var_K = Mcount;
if (Ycount < var_K) var_K = Ycount;
if (var_K == 1)
{
Ccount = 0;
Mcount = 0;
Ycount = 0;
var_K = 100;
}
if (var_K != 1)
{
Ccount =((Ccount - var_K) / (1 - var_K)) * 100;
Mcount =((Mcount - var_K) / (1 - var_K)) * 100;
Ycount =((Ycount - var_K) / (1 - var_K)) * 100;
var_K = var_K * 100;
}
C[Convert.ToInt32(Ccount)]++;
M[Convert.ToInt32(Mcount)]++;
Y[Convert.ToInt32(Ycount)]++;
K[Convert.ToInt32(var_K)]++;
}Решение задачи: «Гистограмма CMYK/RGB - некорректный перевод из CMYK в RGB»
textual
Листинг программы
Сcount =((Ccount - var_K) / (1 - var_K)) * 100; Mcount =((Mcount - var_K) / (1 - var_K)) * 100; Ycount =((Ycount - var_K) / (1 - var_K)) * 100; var_K = var_K * 100;