Я пропустил это, потому что ОП не включил его в свое уравнение. Однако «совпадение не менее 25%» все равно будет означать расстояние менее 75%, поскольку большее расстояние означает меньшее совпадение.

казали использовать формулу расстояния, чтобы найти, совпадает ли цвет с другим, поэтому у меня есть,

struct RGB_SPACE
{
    float R, G, B;
};

RGB_SPACE p = (255, 164, 32);  //pre-defined
RGB_SPACE u = (192, 35, 111);  //user defined

long distance = static_cast<long>(pow(u.R - p.R, 2) + pow(u.G - p.G, 2) + pow(u.B - p.B, 2));

это дает только расстояние, но как я узнаю, что цвет соответствует пользовательскому минимум на 25%?

Я не просто уверен, но у меня есть идея проверить каждое значение цвета, чтобы увидеть, составляет ли разница 25%. например.

float R = u.R/p.R * 100;
float G = u.G/p.G * 100;
float B = u.B/p.B * 100;

if (R <= 25 && G <= 25 && B <= 25)
{
   //color matches with pre-defined color.
}

Ответы на вопрос(3)

Ваш ответ на вопрос