WPF之算法模块-形状模板匹配-搜索区域
UI
<StackPanel Grid.Column="2">
<Button x:Name="btn_LoadImage" Content="加载图像" Margin="10" Click="btn_LoadImage_Click"></Button>
<Button x:Name="btn_SearchRegion" Content="搜索区域" Margin="10" Click="btn_SearchRegion_Click"></Button>
<Button Content="绘制模板" Margin="10"></Button>
<Button Content="保存模板" Margin="10"></Button>
<Button Content="擦除模板" Margin="10"></Button>
<Button Content="模板匹配" Margin="10" Cursor="Hand"></Button>
</StackPanel>
一 加载图像

private void btn_LoadImage_Click(object sender, RoutedEventArgs e)
{
OpenFileDialog fileDialog = new OpenFileDialog();
if (fileDialog.ShowDialog()==System.Windows.Forms.DialogResult.OK)
{
string fileName = fileDialog.FileName;
HOperatorSet.ReadImage(out CurrImage, fileName);
hWindow_Final1.HobjectToHimage(CurrImage);
}
}
二 绘制搜索区域
private void btn_SearchRegion_Click(object sender, RoutedEventArgs e)
{
Flag_Model = 1;
hWindow_Final1.viewWindow.genRect1(100.0, 100.0, 200.0, 200.0, ref this.SearchDrawRegion);
}

三 抬起事件
public MainWindow()
{
InitializeComponent();
this.hWindow_Final1.hWindowControl.MouseUp += HWindowControl_MouseUp1;
}
private void HWindowControl_MouseUp1(object sender, System.Windows.Forms.MouseEventArgs e)
{
List<double> Seach_data = new List<double>();
int index = -1;
hWindow_Final1.viewWindow.smallestActiveROI(out Seach_data, out index);
if (index >= 0)
{
if (Flag_Model == 1)
{
HOperatorSet.GenRectangle1(out SearchRegion, Seach_data[0], Seach_data[1], Seach_data[2], Seach_data[3]);
}
if (Flag_Model == 2)
{
HOperatorSet.GenRectangle1(out ModelRegion, Seach_data[0], Seach_data[1], Seach_data[2], Seach_data[3]);
}
}
}