集成导航相机畸变校准和坐标标定
This commit is contained in:
@@ -74,32 +74,42 @@
|
||||
<Border Grid.Row="0" Background="#FAFAFA" BorderBrush="{StaticResource BorderColor}"
|
||||
BorderThickness="0,0,0,1" Padding="12,8">
|
||||
<StackPanel Orientation="Horizontal">
|
||||
<Button Content="{Binding Source={StaticResource LocalizedStrings}, Path=Resources.CalibrationLoadImage}"
|
||||
<Button Content="{Binding Source={StaticResource LocalizedStrings}, Path=CalibrationLoadImage}"
|
||||
Command="{Binding LoadImageCommand}" FontFamily="Segoe UI"
|
||||
Style="{StaticResource ToolbarButtonStyle}">
|
||||
<Button.Tag><Image Source="/Calibration/Resources/添加图像.png" Width="24" Height="24" /></Button.Tag>
|
||||
<Button.Tag>
|
||||
<Image Source="/XP.Camera;component/Calibration/Resources/添加图像.png" Width="24" Height="24" />
|
||||
</Button.Tag>
|
||||
</Button>
|
||||
<Button Content="{Binding Source={StaticResource LocalizedStrings}, Path=Resources.CalibrationLoadCsv}"
|
||||
<Button Content="{Binding Source={StaticResource LocalizedStrings}, Path=CalibrationLoadCsv}"
|
||||
Command="{Binding LoadCsvCommand}" FontFamily="Segoe UI"
|
||||
Style="{StaticResource ToolbarButtonStyle}">
|
||||
<Button.Tag><Image Source="/Calibration/Resources/外部导入.png" Width="24" Height="24" /></Button.Tag>
|
||||
<Button.Tag>
|
||||
<Image Source="/XP.Camera;component/Calibration/Resources/外部导入.png" Width="24" Height="24" />
|
||||
</Button.Tag>
|
||||
</Button>
|
||||
<Button Content="{Binding Source={StaticResource LocalizedStrings}, Path=Resources.CalibrationExecute}"
|
||||
<Button Content="{Binding Source={StaticResource LocalizedStrings}, Path=CalibrationExecute}"
|
||||
Command="{Binding CalibrateCommand}" FontFamily="Segoe UI"
|
||||
Style="{StaticResource ToolbarButtonStyle}">
|
||||
<Button.Tag><Image Source="/Calibration/Resources/执行.png" Width="24" Height="24" /></Button.Tag>
|
||||
<Button.Tag>
|
||||
<Image Source="/XP.Camera;component/Calibration/Resources/执行.png" Width="24" Height="24" />
|
||||
</Button.Tag>
|
||||
</Button>
|
||||
<Button Content="{Binding Source={StaticResource LocalizedStrings}, Path=Resources.CalibrationSave}"
|
||||
<Button Content="{Binding Source={StaticResource LocalizedStrings}, Path=CalibrationSave}"
|
||||
Command="{Binding SaveCalibrationCommand}" FontFamily="Segoe UI"
|
||||
Style="{StaticResource ToolbarButtonStyle}">
|
||||
<Button.Tag><Image Source="/Calibration/Resources/保存结果.png" Width="24" Height="24" /></Button.Tag>
|
||||
<Button.Tag>
|
||||
<Image Source="/XP.Camera;component/Calibration/Resources/保存结果.png" Width="24" Height="24" />
|
||||
</Button.Tag>
|
||||
</Button>
|
||||
<Button Content="{Binding Source={StaticResource LocalizedStrings}, Path=Resources.CalibrationLoad}"
|
||||
<Button Content="{Binding Source={StaticResource LocalizedStrings}, Path=CalibrationLoad}"
|
||||
Command="{Binding LoadCalibrationCommand}" FontFamily="Segoe UI"
|
||||
Style="{StaticResource ToolbarButtonStyle}">
|
||||
<Button.Tag><Image Source="/Calibration/Resources/加载数据.png" Width="24" Height="24" /></Button.Tag>
|
||||
<Button.Tag>
|
||||
<Image Source="/XP.Camera;component/Calibration/Resources/加载数据.png" Width="24" Height="24" />
|
||||
</Button.Tag>
|
||||
</Button>
|
||||
<CheckBox Content="{Binding Source={StaticResource LocalizedStrings}, Path=Resources.CalibrationShowWorld}"
|
||||
<CheckBox Content="{Binding Source={StaticResource LocalizedStrings}, Path=CalibrationShowWorld}"
|
||||
VerticalAlignment="Center" FontFamily="Segoe UI"
|
||||
IsChecked="{Binding ShowWorldCoordinates}"
|
||||
Margin="10,0,0,0" FontSize="13" Foreground="{StaticResource TextColor}" />
|
||||
@@ -120,7 +130,7 @@
|
||||
<RowDefinition Height="*" />
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<TextBlock Grid.Row="0" Text="{Binding Source={StaticResource LocalizedStrings}, Path=Resources.CalibrationPointList}"
|
||||
<TextBlock Grid.Row="0" Text="{Binding Source={StaticResource LocalizedStrings}, Path=CalibrationPointList}"
|
||||
FontSize="15" FontWeight="SemiBold" FontFamily="Segoe UI"
|
||||
Margin="0,0,0,12" Foreground="{StaticResource TextColor}" />
|
||||
|
||||
@@ -130,13 +140,13 @@
|
||||
FontFamily="Segoe UI"
|
||||
BorderBrush="{StaticResource BorderColor}" BorderThickness="1">
|
||||
<DataGrid.Columns>
|
||||
<DataGridTextColumn Header="{Binding Source={StaticResource LocalizedStrings}, Path=Resources.CalibrationPixelX}"
|
||||
<DataGridTextColumn Header="{Binding Source={StaticResource LocalizedStrings}, Path=CalibrationPixelX}"
|
||||
Binding="{Binding PixelX}" FontFamily="Segoe UI" Width="*" />
|
||||
<DataGridTextColumn Header="{Binding Source={StaticResource LocalizedStrings}, Path=Resources.CalibrationPixelY}"
|
||||
<DataGridTextColumn Header="{Binding Source={StaticResource LocalizedStrings}, Path=CalibrationPixelY}"
|
||||
Binding="{Binding PixelY}" FontFamily="Segoe UI" Width="*" />
|
||||
<DataGridTextColumn Header="{Binding Source={StaticResource LocalizedStrings}, Path=Resources.CalibrationWorldX}"
|
||||
<DataGridTextColumn Header="{Binding Source={StaticResource LocalizedStrings}, Path=CalibrationWorldX}"
|
||||
Binding="{Binding WorldX}" FontFamily="Segoe UI" Width="*" />
|
||||
<DataGridTextColumn Header="{Binding Source={StaticResource LocalizedStrings}, Path=Resources.CalibrationWorldY}"
|
||||
<DataGridTextColumn Header="{Binding Source={StaticResource LocalizedStrings}, Path=CalibrationWorldY}"
|
||||
Binding="{Binding WorldY}" FontFamily="Segoe UI" Width="*" />
|
||||
</DataGrid.Columns>
|
||||
</DataGrid>
|
||||
@@ -162,4 +172,4 @@
|
||||
</Grid>
|
||||
</Grid>
|
||||
</Grid>
|
||||
</UserControl>
|
||||
</UserControl>
|
||||
@@ -74,29 +74,41 @@
|
||||
<Border Grid.Row="0" Background="#FAFAFA" BorderBrush="{StaticResource BorderColor}"
|
||||
BorderThickness="0,0,0,1" Padding="12,8">
|
||||
<StackPanel Orientation="Horizontal">
|
||||
<Button Content="{Binding Source={StaticResource LocalizedStrings}, Path=Resources.ChessboardAddImages}" Command="{Binding AddImagesCommand}"
|
||||
<Button Content="{Binding Source={StaticResource LocalizedStrings}, Path=ChessboardAddImages}" Command="{Binding AddImagesCommand}"
|
||||
Style="{StaticResource ToolbarButtonStyle}">
|
||||
<Button.Tag><Image Source="/Calibration/Resources/添加图像.png" Width="24" Height="24" /></Button.Tag>
|
||||
<Button.Tag>
|
||||
<Image Source="/XP.Camera;component/Calibration/Resources/添加图像.png" Width="24" Height="24" />
|
||||
</Button.Tag>
|
||||
</Button>
|
||||
<Button Content="{Binding Source={StaticResource LocalizedStrings}, Path=Resources.ChessboardClearImages}" Command="{Binding ClearImagesCommand}"
|
||||
<Button Content="{Binding Source={StaticResource LocalizedStrings}, Path=ChessboardClearImages}" Command="{Binding ClearImagesCommand}"
|
||||
Style="{StaticResource ToolbarButtonStyle}">
|
||||
<Button.Tag><Image Source="/Calibration/Resources/清空列表.png" Width="24" Height="24" /></Button.Tag>
|
||||
<Button.Tag>
|
||||
<Image Source="/XP.Camera;component/Calibration/Resources/清空列表.png" Width="24" Height="24" />
|
||||
</Button.Tag>
|
||||
</Button>
|
||||
<Button Content="{Binding Source={StaticResource LocalizedStrings}, Path=Resources.ChessboardCalibrate}" Command="{Binding CalibrateCommand}"
|
||||
<Button Content="{Binding Source={StaticResource LocalizedStrings}, Path=ChessboardCalibrate}" Command="{Binding CalibrateCommand}"
|
||||
Style="{StaticResource ToolbarButtonStyle}">
|
||||
<Button.Tag><Image Source="/Calibration/Resources/校准.png" Width="24" Height="24" /></Button.Tag>
|
||||
<Button.Tag>
|
||||
<Image Source="/XP.Camera;component/Calibration/Resources/校准.png" Width="24" Height="24" />
|
||||
</Button.Tag>
|
||||
</Button>
|
||||
<Button Content="{Binding Source={StaticResource LocalizedStrings}, Path=Resources.ChessboardSave}" Command="{Binding SaveCalibrationCommand}"
|
||||
<Button Content="{Binding Source={StaticResource LocalizedStrings}, Path=ChessboardSave}" Command="{Binding SaveCalibrationCommand}"
|
||||
Style="{StaticResource ToolbarButtonStyle}">
|
||||
<Button.Tag><Image Source="/Calibration/Resources/保存结果.png" Width="24" Height="24" /></Button.Tag>
|
||||
<Button.Tag>
|
||||
<Image Source="/XP.Camera;component/Calibration/Resources/保存结果.png" Width="24" Height="24" />
|
||||
</Button.Tag>
|
||||
</Button>
|
||||
<Button Content="{Binding Source={StaticResource LocalizedStrings}, Path=Resources.ChessboardLoad}" Command="{Binding LoadCalibrationCommand}"
|
||||
<Button Content="{Binding Source={StaticResource LocalizedStrings}, Path=ChessboardLoad}" Command="{Binding LoadCalibrationCommand}"
|
||||
Style="{StaticResource ToolbarButtonStyle}">
|
||||
<Button.Tag><Image Source="/Calibration/Resources/加载数据.png" Width="24" Height="24" /></Button.Tag>
|
||||
<Button.Tag>
|
||||
<Image Source="/XP.Camera;component/Calibration/Resources/加载数据.png" Width="24" Height="24" />
|
||||
</Button.Tag>
|
||||
</Button>
|
||||
<Button Content="{Binding Source={StaticResource LocalizedStrings}, Path=Resources.ChessboardUndistort}" Command="{Binding UndistortImageCommand}"
|
||||
<Button Content="{Binding Source={StaticResource LocalizedStrings}, Path=ChessboardUndistort}" Command="{Binding UndistortImageCommand}"
|
||||
Style="{StaticResource ToolbarButtonStyle}">
|
||||
<Button.Tag><Image Source="/Calibration/Resources/执行.png" Width="24" Height="24" /></Button.Tag>
|
||||
<Button.Tag>
|
||||
<Image Source="/XP.Camera;component/Calibration/Resources/执行.png" Width="24" Height="24" />
|
||||
</Button.Tag>
|
||||
</Button>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
@@ -117,7 +129,7 @@
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<StackPanel Grid.Row="0" Margin="0,0,0,16">
|
||||
<TextBlock Text="{Binding Source={StaticResource LocalizedStrings}, Path=Resources.ChessboardParameters}" FontFamily="Segoe UI" FontSize="15" FontWeight="SemiBold"
|
||||
<TextBlock Text="{Binding Source={StaticResource LocalizedStrings}, Path=ChessboardParameters}" FontFamily="Segoe UI" FontSize="15" FontWeight="SemiBold"
|
||||
Margin="0,0,0,12" Foreground="{StaticResource TextColor}" />
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
@@ -129,16 +141,16 @@
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="Auto" />
|
||||
</Grid.RowDefinitions>
|
||||
<TextBlock Grid.Row="0" Grid.Column="0" Text="{Binding Source={StaticResource LocalizedStrings}, Path=Resources.ChessboardWidth}" FontFamily="Segoe UI" VerticalAlignment="Center" Margin="0,0,8,8" />
|
||||
<TextBlock Grid.Row="0" Grid.Column="0" Text="{Binding Source={StaticResource LocalizedStrings}, Path=ChessboardWidth}" FontFamily="Segoe UI" VerticalAlignment="Center" Margin="0,0,8,8" />
|
||||
<TextBox Grid.Row="0" Grid.Column="1" Text="{Binding ChessboardWidth}" FontFamily="Segoe UI" Height="28" Margin="0,0,0,8" />
|
||||
<TextBlock Grid.Row="1" Grid.Column="0" Text="{Binding Source={StaticResource LocalizedStrings}, Path=Resources.ChessboardHeight}" FontFamily="Segoe UI" VerticalAlignment="Center" Margin="0,0,8,8" />
|
||||
<TextBlock Grid.Row="1" Grid.Column="0" Text="{Binding Source={StaticResource LocalizedStrings}, Path=ChessboardHeight}" FontFamily="Segoe UI" VerticalAlignment="Center" Margin="0,0,8,8" />
|
||||
<TextBox Grid.Row="1" Grid.Column="1" Text="{Binding ChessboardHeight}" FontFamily="Segoe UI" Height="28" Margin="0,0,0,8" />
|
||||
<TextBlock Grid.Row="2" Grid.Column="0" Text="{Binding Source={StaticResource LocalizedStrings}, Path=Resources.ChessboardSquareSize}" FontFamily="Segoe UI" VerticalAlignment="Center" Margin="0,0,8,0" />
|
||||
<TextBlock Grid.Row="2" Grid.Column="0" Text="{Binding Source={StaticResource LocalizedStrings}, Path=ChessboardSquareSize}" FontFamily="Segoe UI" VerticalAlignment="Center" Margin="0,0,8,0" />
|
||||
<TextBox Grid.Row="2" Grid.Column="1" Text="{Binding SquareSize}" FontFamily="Segoe UI" Height="28" />
|
||||
</Grid>
|
||||
</StackPanel>
|
||||
|
||||
<TextBlock Grid.Row="1" Text="{Binding Source={StaticResource LocalizedStrings}, Path=Resources.ChessboardImageList}" FontFamily="Segoe UI" FontSize="15" FontWeight="SemiBold"
|
||||
<TextBlock Grid.Row="1" Text="{Binding Source={StaticResource LocalizedStrings}, Path=ChessboardImageList}" FontFamily="Segoe UI" FontSize="15" FontWeight="SemiBold"
|
||||
Margin="0,0,0,12" Foreground="{StaticResource TextColor}" />
|
||||
<ListBox Grid.Row="2" ItemsSource="{Binding ImageFileNames}" SelectedIndex="{Binding SelectedImageIndex}"
|
||||
FontFamily="Segoe UI" BorderBrush="{StaticResource BorderColor}" BorderThickness="1" />
|
||||
@@ -169,7 +181,7 @@
|
||||
Visibility="{Binding IsCalibrating, Converter={StaticResource BooleanToVisibilityConverter}}" />
|
||||
<ProgressBar Grid.Row="1" Height="24" Value="{Binding ProgressValue}" Maximum="100"
|
||||
Visibility="{Binding IsCalibrating, Converter={StaticResource BooleanToVisibilityConverter}}" />
|
||||
<TextBlock Grid.Row="0" Grid.RowSpan="2" Text="{Binding Source={StaticResource LocalizedStrings}, Path=Resources.ChessboardStatusReady}" FontFamily="Segoe UI" FontSize="12"
|
||||
<TextBlock Grid.Row="0" Grid.RowSpan="2" Text="{Binding Source={StaticResource LocalizedStrings}, Path=ChessboardStatusReady}" FontFamily="Segoe UI" FontSize="12"
|
||||
VerticalAlignment="Center" Foreground="{StaticResource TextSecondaryColor}">
|
||||
<TextBlock.Style>
|
||||
<Style TargetType="TextBlock">
|
||||
@@ -193,7 +205,7 @@
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="*" />
|
||||
</Grid.RowDefinitions>
|
||||
<TextBlock Grid.Row="0" Text="{Binding Source={StaticResource LocalizedStrings}, Path=Resources.ChessboardStatusInfo}" FontFamily="Segoe UI" FontSize="15" FontWeight="SemiBold"
|
||||
<TextBlock Grid.Row="0" Text="{Binding Source={StaticResource LocalizedStrings}, Path=ChessboardStatusInfo}" FontFamily="Segoe UI" FontSize="15" FontWeight="SemiBold"
|
||||
Margin="0,0,0,12" Foreground="{StaticResource TextColor}" />
|
||||
<ScrollViewer Grid.Row="1" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Disabled">
|
||||
<TextBlock TextWrapping="Wrap" FontSize="12" FontFamily="Segoe UI"
|
||||
@@ -204,4 +216,4 @@
|
||||
</Grid>
|
||||
</Grid>
|
||||
</Grid>
|
||||
</UserControl>
|
||||
</UserControl>
|
||||
Reference in New Issue
Block a user