Как я могу использовать таблицу поиска для яркости и контрастности?

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

Я слышал, что я могу использовать таблицу поиска, чтобы получать значения яркости и контрастности для двухмерного изображения текстуры. Как я могу сделать что-то подобное в Unity?

В настоящее время в Unity у меня есть сборник, в котором я загружаю 2D-изображение текстуры поверх него. Это изображение, в которое я хочу применить изменения яркости и контраста.

3 голоса | спросил Kala J 3 Mayam15 2015, 05:45:07

1 ответ


1

Что-то вроде следующего:

public void addContrast(float Contrast)
{
    byte[] contrast_lookup = new byte[256];
    double newValue = 0;
    double c = (100.0 + Contrast) / 100.0;

    c *= c;

    for (int i = 0; i < 256; i++)
    {
        newValue = (double)i;
        newValue /= 255.0;
        newValue -= 0.5;
        newValue *= c;
        newValue += 0.5;
        newValue *= 255;

        if (newValue < 0)
            newValue = 0;
        if (newValue > 255)
            newValue = 255;
        contrast_lookup[i] = (byte)newValue;
    }
}

В этот момент для каждого пикселя yuo замените G B R на контраст_lookup (G) контраст_lookup (B) контраст_lookup (R)

ответил dnk drone.vs.drones 3 Mayam15 2015, 09:32:14

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132