asmrobot
2019-11-25 2aeab450471cb80b59002da7da80faf251a0c4f4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
<Window x:Class="RichCreator.Editor.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:RichCreator.Editor"
        mc:Ignorable="d"
        WindowStartupLocation="CenterScreen"
        Loaded="Window_Loaded"
        Unloaded="Window_Unloaded"
        KeyDown="A_KeyDown"
        Title="富豪编辑器" Height="600" Width="1024">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto" />
            <RowDefinition Height="*" />
        </Grid.RowDefinitions>
        <Menu Grid.Row="0" Grid.Column="0" VerticalAlignment="Center" FontSize="16">
            <MenuItem Header="文件(F)">
                <MenuItem Header="打开..." Click="OpenFromFile"/>
                <MenuItem Header="截屏" Click="OpenFromCapture"/>
                <MenuItem Header="粘贴" Click="OpenFromClipboard"/>
                <Separator/>
                <MenuItem Header="退出" Click="Exit_Click" />
            </MenuItem>
            <MenuItem Header="选区">
                <MenuItem Header="生成选区" Click="GenericSection_Click"/>
                <MenuItem Header="复制选区" Click="CopySelection_Click"/>
                <Separator/>
                <MenuItem Header="显示选区" Click="ShowSelection_Click"/>
                <Separator/>
                <MenuItem Header="计算选区Hsv范围" Click="CalcHsvRangeSelection_Click"/>
            </MenuItem>
            <MenuItem Header="识别">
                <MenuItem Header="查找选区" Click="FindSelection" />
                <MenuItem Header="HSV模式查找选区" Click="FindSelectionForHsv" />
                <MenuItem Header="Thresold模式查找选区" Click="FindSelectionForThresold" />
                
                <MenuItem Header="查找方块" Click="FindBlock" />
                <MenuItem Header="查找方框" Click="FindRectangle" />
                <MenuItem Header="查找加百利" Click="FindJiaBaili" />
 
                <MenuItem Header="查找定位点" Click="FindLocationPoint_Click" />
 
                <MenuItem Header="查找物品" Click="FindThing_Click" />
 
                <Separator/>
                <MenuItem Header="测试找线" Click="FindLines" />
                <Separator/>
 
                <MenuItem Header="查找关闭窗" Click="FindCloseButton_Click" />
 
            </MenuItem>
            <MenuItem Header="工具(T)">
                <MenuItem Header="测距" IsEnabled="False"/>
                
                <MenuItem Header="图像识别学习" >
                    <MenuItem Header="图片分割..." Click="Split_Click"/>
                    <MenuItem Header="样本训练..." Click="Train_Click"/>
                    <MenuItem Header="图像识别..." Click="ImageCheck_Click" />
                </MenuItem>
 
                <MenuItem Header="方块灰度" Click="BlockGray" />
 
                <MenuItem Header="鼠标模式识别" Click="MenuItem_Click" />
                <!--<MenuItem Header="AStar寻路工具" Click="AStarTools_Click" />-->
                <MenuItem Header="地图编辑..." Click="DijkstraTools_Click" />
 
            </MenuItem>
            <MenuItem Header="帮助(H)" >
                <MenuItem Header="查看帮助"/>
                <MenuItem Header="发送反馈"/>
                <MenuItem Header="技术支持" />
                <MenuItem Header="关于" />
            </MenuItem>
        </Menu>
 
 
        <Grid Grid.Row="1">
 
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="170" />
                <ColumnDefinition Width="*" />
            </Grid.ColumnDefinitions>
            <Grid.RowDefinitions>
                <RowDefinition Height="Auto" />
                <RowDefinition Height="*" />
            </Grid.RowDefinitions>
 
 
            <Border Grid.Row="0" Grid.Column="0" BorderThickness="1" BorderBrush="Gray" Grid.ColumnSpan="2" Padding="4">
                <Grid>
                    <StackPanel Orientation="Horizontal" HorizontalAlignment="Left" VerticalAlignment="Center">
                        <CheckBox Content="叠加层" x:Name="HasCombinLayer"  Checked="HasCombinLayer_Checked" VerticalAlignment="Center" IsChecked="False" />
                        <ComboBox SelectedIndex="0" SelectionChanged="ComboBox_SelectionChanged" x:Name="ImageProccessModel">
                            <ComboBoxItem>原图</ComboBoxItem>
                            <ComboBoxItem>灰度</ComboBoxItem>
                            <ComboBoxItem>二值化</ComboBoxItem>
                        </ComboBox>
                        <Slider Width="255" x:Name="ThresholdSlider" Value="150" Minimum="0" Maximum="255" IsSnapToTickEnabled="True" ValueChanged="ThresholdSlider_ValueChanged" IsEnabled="False"/>
                        <TextBlock FontSize="14" Text="   Value:" />
                        <TextBlock FontSize="14" Text="{Binding ElementName=ThresholdSlider,Path=Value}" />
 
                        <TextBlock Text="选框大小:" Margin="12 0 0 0"/>
                        <TextBox Width="20" x:Name="SelectAreaWidth" Text="1" TextChanged="SelectAreaWidth_TextChanged"/>
                        <TextBlock Text="X" VerticalAlignment="Center"/>
                        <TextBox Width="20" x:Name="SelectAreaHeight" Text="1" TextChanged="SelectAreaWidth_TextChanged"/>
                    </StackPanel>
 
 
                    <StackPanel Orientation="Horizontal" HorizontalAlignment="Right" VerticalAlignment="Center">
                        <!--<Button Content="test" Click="test_click" />-->
                        <Button Content="清理" Click="ClearCanvas" />
                    </StackPanel>
 
                </Grid>
 
            </Border>
 
 
            <Border Grid.Row="1" Grid.Column="0" BorderThickness="1 0 1 1" BorderBrush="Gray" >
                <Grid >
                    <Grid.RowDefinitions>
                        <RowDefinition Height="170"/>
                        <RowDefinition Height="18" />
                        <RowDefinition Height="Auto" />
                        <RowDefinition Height="*" />
                    </Grid.RowDefinitions>
 
                    <Border Grid.Row="0" Grid.Column="0"  BorderThickness="0 0 0 1" BorderBrush="Gray" >
                        <Grid  HorizontalAlignment="Center" VerticalAlignment="Center">
                            <Image x:Name="PreViewImage" RenderOptions.BitmapScalingMode="NearestNeighbor" Width="170" Height="170" />
                            <Rectangle Stroke="Red" StrokeThickness="1" Width="10" Height="10" VerticalAlignment="Center" HorizontalAlignment="Center" />
                        </Grid>
                    </Border>
 
                    <Border Grid.Row="1" Grid.Column="0" BorderThickness="0 0 0 1" BorderBrush="Gray" >
                        <Grid>
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="Auto"/>
                                <ColumnDefinition Width="Auto"/>
                                <ColumnDefinition Width="Auto"/>
                                <ColumnDefinition Width="Auto"/>
                                <ColumnDefinition Width="*"/>
                            </Grid.ColumnDefinitions>
                            <TextBlock Text="X:" Grid.Column="0"/>
                            <TextBox Text="0" x:Name="pointX" Width="50" Grid.Column="1"/>
                            <TextBlock Text="Y:" Grid.Column="2"/>
                            <TextBox Text="0" x:Name="pointY" Width="50" Grid.Column="3" />
                            <Rectangle x:Name="colorShow" Grid.Column="4" />
                        </Grid>
                    </Border>
 
                    <Border  Grid.Row="2" Grid.Column="0" BorderThickness="0 0 0 1" BorderBrush="Gray" >
                        <Grid>
                            <Grid.RowDefinitions>
                                <RowDefinition Height="Auto" />
                                <RowDefinition Height="Auto" />
                                <RowDefinition Height="Auto" />
                            </Grid.RowDefinitions>
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="*" />
                                <ColumnDefinition Width="4*" />
                            </Grid.ColumnDefinitions>
 
                            <TextBlock Grid.Row="0" Grid.Column="0" Text="Hex"/>
                            <TextBox Grid.Row="0" Grid.Column="1" Text="000000" x:Name="colorHexInfo" Width="150" />
 
 
                            <TextBlock Grid.Row="1" Grid.Column="0" Text="Oct"/>
                            <TextBox Grid.Row="1" Grid.Column="1" Text="225,225,225" x:Name="colorOctInfo" Width="150" />
 
                            <TextBlock Grid.Row="2" Grid.Column="0" Text="Hsv"/>
                            <TextBox Grid.Row="2" Grid.Column="1" Text="0.1252,0.1544,0.25856" x:Name="colorHsvInfo" Width="150" />
                        </Grid>
                        
                    </Border>
 
                    <ListBox Grid.Row="3" x:Name="ColorsListBox" Grid.Column="0" ItemsSource="{Binding SelectColors}"  SelectionMode="Extended">
                        <ListBox.ContextMenu>
                            <ContextMenu>
                                <Menu>
                                    <MenuItem Header="删除选中" Click="RemvoeSelectItem_Click"  />
                                    <MenuItem Header="清空" Click="ClearSelect_Click"  />
                                </Menu>
                            </ContextMenu>
                        </ListBox.ContextMenu>
                        <ListBox.ItemTemplate>
                            <DataTemplate>
                                <Grid>
                                    <Grid.ColumnDefinitions>
                                        <ColumnDefinition Width="Auto" />
                                        <ColumnDefinition Width="Auto" />
                                        <ColumnDefinition Width="Auto" />
                                        <ColumnDefinition Width="*" />
                                        <ColumnDefinition Width="Auto" />
                                        <ColumnDefinition Width="Auto" />
                                        <ColumnDefinition Width="Auto" />
                                        <ColumnDefinition Width="Auto" />
                                    </Grid.ColumnDefinitions>
                                    <TextBlock Text="ID:" Grid.Column="0" />
                                    <TextBlock Text="{Binding Path=ID}" Grid.Column="1" />
                                    <TextBlock Text="," Grid.Column="2"/>
                                    <TextBlock Text="{Binding Path=ColorText}" Grid.Column="3" />
                                    <TextBlock Text=",X:"  Grid.Column="4" />
                                    <TextBlock Text="{Binding Path=X}"  Grid.Column="5" />
                                    <TextBlock Text=",Y:"  Grid.Column="6" />
                                    <TextBlock Text="{Binding Path=Y}"  Grid.Column="7" />
                                </Grid>
                            </DataTemplate>
                        </ListBox.ItemTemplate>
                    </ListBox>
                </Grid>
            </Border>
 
 
            <ScrollViewer x:Name="scrollViewer" Grid.Row="1"  Grid.Column="1"  HorizontalAlignment="Stretch" VerticalAlignment="Stretch" HorizontalScrollBarVisibility="Visible" VerticalScrollBarVisibility="Visible" >
                <Canvas x:Name="mainContainer" HorizontalAlignment="Left" VerticalAlignment="Top">
                    <Image x:Name="SourceImage" Stretch="None" HorizontalAlignment="Left" VerticalAlignment="Top" MouseMove="SourceImage_MouseMove" MouseDown="SourceImage_MouseDown"  />
                    <Rectangle Width="1" Height="1" Stroke="Green" StrokeThickness="1" x:Name="SelectArea" Visibility="Hidden" IsHitTestVisible="False" />
                    <Canvas x:Name="ImageOverflowLayer"/>
                </Canvas>
            </ScrollViewer>
 
        </Grid>
    </Grid>
</Window>