Initial commit

This commit is contained in:
2026-08-22 19:02:35 +03:00 Unverified
commit 4de1b2c560
9 changed files with 917 additions and 0 deletions
+88
View File
@@ -0,0 +1,88 @@
<Window x:Class="DSPS_Lab3.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:DSPS_Lab3"
mc:Ignorable="d"
Title="MainWindow" Height="450" Width="800">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="64"/>
</Grid.RowDefinitions>
<Image x:Name="MainImage" Grid.Column="0" Grid.Row="0" Margin="10" Stretch="Uniform">
<Image.Style>
<Style TargetType="Image">
<Setter Property="RenderOptions.BitmapScalingMode" Value="NearestNeighbor" />
<Style.Triggers>
<DataTrigger Binding="{Binding IsChecked, ElementName=QualityToggle}" Value="True">
<Setter Property="RenderOptions.BitmapScalingMode" Value="HighQuality" />
</DataTrigger>
</Style.Triggers>
</Style>
</Image.Style>
</Image>
<ProgressBar x:Name="progressBar1" Grid.Column="1" Grid.Row="0" VerticalAlignment="Stretch" Orientation="Vertical">
<ProgressBar.LayoutTransform>
<RotateTransform Angle="180" />
</ProgressBar.LayoutTransform>
</ProgressBar>
<CheckBox x:Name="QualityToggle" Content="Smooth" />
<Image x:Name="SlowImage" Grid.Column="1" Grid.Row="0" Margin="10" Stretch="Uniform">
<Image.Style>
<Style TargetType="Image">
<Setter Property="RenderOptions.BitmapScalingMode" Value="NearestNeighbor" />
<Style.Triggers>
<DataTrigger Binding="{Binding IsChecked, ElementName=QualityToggle}" Value="True">
<Setter Property="RenderOptions.BitmapScalingMode" Value="HighQuality" />
</DataTrigger>
</Style.Triggers>
</Style>
</Image.Style>
</Image>
<Image x:Name="FastImage" Grid.Column="2" Grid.Row="0" Margin="10" Stretch="Uniform">
<Image.Style>
<Style TargetType="Image">
<Setter Property="RenderOptions.BitmapScalingMode" Value="NearestNeighbor" />
<Style.Triggers>
<DataTrigger Binding="{Binding IsChecked, ElementName=QualityToggle}" Value="True">
<Setter Property="RenderOptions.BitmapScalingMode" Value="HighQuality" />
</DataTrigger>
</Style.Triggers>
</Style>
</Image.Style>
</Image>
<GridSplitter Grid.ColumnSpan="3" Grid.Row="1" Height="2" HorizontalAlignment="Stretch" ResizeDirection="Rows"/>
<Grid Grid.Column="0" Grid.Row="2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Button Grid.Column="0" Margin="10" Content="Load Image" FontSize="20px" Click="LoadImageClick"/>
<Button Grid.Column="1" Margin="10" Content="Save Images" FontSize="20px" Click="SaveImagesClick"/>
</Grid>
<StackPanel Grid.Column="1" Grid.Row="2" Margin="10" Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center">
<Label Content="{Binding ElementName=kernelSize, Path=Value}" ContentStringFormat="Kernel size: {0}" FontSize="20px"/>
<Label Content="{Binding ElementName=sigmaValue, Path=Value}" ContentStringFormat="σ: {0:F2}" FontSize="20px"/>
</StackPanel>
<Label x:Name="spatialProgress" Grid.Column="1" Grid.Row="0" Content="1"/>
<Label x:Name="fftProgress" Grid.Column="2" Grid.Row="0" Content="2"/>
<Viewbox Stretch="Fill" Grid.Column="2" Grid.Row="2">
<Canvas x:Name="GraphCanvas" Width="100" Height="25" ClipToBounds="True">
</Canvas>
</Viewbox>
<StackPanel Grid.Column="2" Grid.Row="2" >
<Slider x:Name="kernelSize" Margin="5" Maximum="101" Value="5" VerticalAlignment="Center" TickPlacement="TopLeft" TickFrequency="2" IsSnapToTickEnabled="True" Minimum="1" ValueChanged="ChangeParams"/>
<Slider x:Name="sigmaValue" Margin="5" Maximum="10.0" Value="1" VerticalAlignment="Center" Minimum="0.1" ValueChanged="ChangeParams"/>
</StackPanel>
</Grid>
</Window>