使用Lumia Imaging SDK在图像上应用颜色查找表

时间:2016-05-02 15:42:32

标签: xaml win-universal-app windows-10-universal lumia-imaging-sdk

有没有办法阅读颜色查找表并使用Lumia成像sdk或任何其他替代方案将其应用到源图像上?

提前致谢!

3 个答案:

答案 0 :(得分:0)

Lumia Imaging SDK中没有Lookup表效果。也就是说,根据您的需要,您可以使用RGBMixerEffect来实现所需的效果。它使用ARGBColorCurves的集合将一种颜色映射到另一种颜色。

设置所有曲线可能有些工作,但您应该能够达到预期的效果。

答案 1 :(得分:0)

  

有没有办法阅读颜色查找表并使用Lumia成像sdk或任何其他替代方案将其应用到源图像上?

UWP不提供读取颜色的控制。您可以使用ColorPicker选择所需的颜色。 ColorPicker 提供SelectedColor属性以获取所选颜色。

Lumia Imaging SDK提供了许多类来改变图像的效果。从Lumia Imaging Effect表中,您似乎希望使用ColorAdjustEffect来调整图像的RGB颜色组成。

您可以设置ColorAdjustEffect.BlueColorAdjustEffect.GreenColorAdjustEffect.Red。这些属性的范围是-1.0到1.0。 您也可以将Color.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):

enter image description here

答案 2 :(得分:0)

感谢您的回复!

我们的问题陈述和用例是不同的,我们想要实现的是我们有一个.png图像,它是一个具有ARGB值的3D查找表,我们希望逐像素地应用于目标图像。

PFA Lookup table image.

如果您可以建议我们或提供代码示例或代码段来阅读查找表并在目标图像上应用ARGB值,那将是一个很大的帮助。

目前我们正在尝试David的RGBMixerEffect和ARGBColorCurves建议的解决方案。但我们不确定如何将查找表png转换为ARGB,以便我们可以使用David建议的任何上述备选方案。