Применение таблицы поиска цветов к изображению с помощью Lumia Imaging SDK

Есть ли какой-либо способ прочитать таблицу поиска цветов и применить ее к исходному изображению с помощью Lumia imaging sdk или любой другой доступной альтернативы?

Заранее спасибо!

3 ответа

  1. В Lumia Imaging SDK нет эффекта таблицы подстановки. Тем не менее, в зависимости от вашей потребности вы, вероятно, можете достичь нужного эффекта с помощью RGBMixerEffect он использует коллекцию ARGBColorCurves для сопоставления одного цвета с другим.

    Это может быть некоторая работа, чтобы настроить все кривые, но вы должны быть в состоянии достичь желаемого эффекта.

  2. Есть ли какой-либо способ прочитать таблицу поиска цветов и применить ее к исходному изображению с помощью Lumia imaging sdk или любой другой доступной альтернативы?

    UWP не предоставляет элемент управления для чтения цвета. Вы можете использовать ColorPicker, чтобы выбрать цвет, который вы хотите. ColorPicker предоставляет SelectedColorсвойство для получения выбранного цвета.

    Lumia Imaging SDK предоставляет множество классов для изменения эффекта изображения. Из таблицы Lumia Imaging Effect видно, что вы хотите использовать ColorAdjustEffect для настройки цветовой композиции RGB изображения.

    Можно установить ColorAdjustEffect.Синий, ColorAdjustEffect.Зеленый цвет и ColorAdjustEffect.Red.Диапазон этих свойств от -1.0 до 1.0.
    Также вы можете установить цвет.R как значение между 0 и 255.

    В качестве рабочего цикла можно преобразовать диапазон от [-1,1] до [0,255] с помощью неточного метода.

    Например:

    в XAML:

    <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
        <Grid.RowDefinitions>
            <RowDefinition Height="*"/>
            <RowDefinition Height="3*"/>
            <RowDefinition Height="auto"/>
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="*"/>
            <ColumnDefinition Width="*"></ColumnDefinition>
        </Grid.ColumnDefinitions>
        <Image Name="OriginalImage" Grid.Row="0" Width="200" Height="200"></Image>
        <xc:ColorPicker Name="MyColor" SelectedColorChanged="ColorPicker_SelectedColorChanged"  Grid.Row="1" Grid.Column="1"></xc:ColorPicker>
        <SwapChainPanel x_Name="SwapChainPanelTarget" Grid.Row="1" />
        <Button Grid.Row="2" HorizontalAlignment="Center" Content="Button" Click="Button_Click"></Button>
    </Grid>
    

    В коде позади:

    private async void ColorPicker_SelectedColorChanged(object sender, EventArgs e)
    {
        var r = MyColor.SelectedColor.Color.R * 2.0 / 255 - 1;
        var g = MyColor.SelectedColor.Color.G * 2.0 / 255 - 1;
        var b = MyColor.SelectedColor.Color.B * 2.0 / 255 - 1;
        _colorAdjustEffect.Red = r;
        _colorAdjustEffect.Green = g;
        _colorAdjustEffect.Blue = b;
        m_renderer = new SwapChainPanelRenderer(_colorAdjustEffect, SwapChainPanelTarget);
        await m_renderer.RenderAsync();
    }
    

    Скриншот (gif):

    Введите описание изображения здесь

  3. Спасибо за ответ!

    Наша постановка проблемы и usecase отличается, то, что мы хотим достичь, что у нас есть .png-изображение, которое представляет собой таблицу 3D-поиска, имеющую значения ARGB, которые мы хотим применить пиксель за пикселем к целевому изображению.

    PFA Lookup table image.

    Было бы большой помощью, если вы можете предложить нам или дать образец кода или фрагмент, чтобы прочитать таблицу поиска и применить значения ARGB на целевом образе.

    В настоящее время мы пробуем решение, предложенное David из RGBMixerEffect и ARGBColorCurves. Но мы не уверены, как конвертировать таблицу поиска png в ARGB, чтобы мы могли использовать любую из вышеперечисленных альтернатив, предложенных David.