Выбор цветовой области по приближению

Кто-нибудь знает название метода, используемого обработчиками изображений (например, Photoshop или Gimp), чтобы выбрать регион с похожими цветами? Кроме того, может ли кто-нибудь указать какую-либо ссылку для объяснения этого метода (с кодом C ++, если это возможно)?

1

Решение

Если вам интересно, это может быть примером проверки, похож ли цвет на другой.
Он также использует толерантность, как волшебная палочка из gimp и paint.net.

Однако в этом примере сравнивается разница в значении, а не в цвете или яркости.

/*\ function to check if the color at this position is similar to the one you chose
|*  Parameters:
|*    int color       - the value of the color of choice
|*    int x           - position x of the pixel
|*    int y           - position y of the pixel
|*    float tolerance - how much this pixels color can differ to still be considered similar
\*/

bool isSimilar(int color, int x, int y, float tolerance)
{
// calculate difference between your color and the max value color can have
int diffMaxColor = 0xFFFFFF - color;
// set the minimum difference between your color and the minimum value of color
int diffMinColor = color;
// pseudo function to get color ( could return 'colorMap[y * width + x];')
int chkColor = getColor(x, y);
// now checking whether or not the color of the pixel is in the range between max and min with tolerance
if(chkColor > (color + (diffMaxColor * tolerance)) || chkColor < ((1 - tolerance) * diffMinColor))
{
// the color is outside our tolerated range
return false;
}
// the color is inside our tolerated range
return true;
}
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]