通用视觉工具模块-直接阈值分割模块-2-UI设计

通用视觉工具模块-直接阈值分割模块-2-UI设计

通用视觉工具模块-直接阈值分割模块-2-UI设计

一 链接图像

xmlns:vm="clr-namespace:Plugin.Threshold.ViewModels"

UI

<Border Grid.Row="0"><ExpanderHeader="图像链接"IsExpanded="True"><StackPanelHorizontalAlignment="Center"><StackPanelOrientation="Horizontal"Margin="5 0"><TextBlockText="输入图像"HorizontalAlignment="Center"VerticalAlignment="Center"/><TextBoxHorizontalAlignment="Center"VerticalAlignment="Center"BorderThickness="0 0 0 1"Width="200"Margin="5 0"IsReadOnly="True"Style="{StaticResource LinkTextBox}"Text="{Binding InputImageLinkText}"mah:TextBoxHelper.LinkButtonCommand="{Binding LinkCommand,Mode=OneWay}"mah:TextBoxHelper.LinkButtonCommandParameter="{x:Static vm:eLinkCommand.InputImageLink}"/></StackPanel></StackPanel></Expander></Border>

后端

publicenumeLinkCommand{InputImageLink,}
privatestring_InputImageLinkText;/// <summary>/// 输入图像链接文本/// </summary>publicstringInputImageLinkText{get{return_InputImageLinkText;}set{Set(ref_InputImageLinkText,value);}}

halcon显示控件加载

[NonSerialized]privateRImage_DispImage;publicRImageDispImage{get{return_DispImage;}set{_DispImage=value;}}
/// <summary>/// 加载函数/// </summary>publicoverridevoidLoaded(){base.Loaded();varview=ModuleViewasThresholdView;if(view!=null){ClosedView=true;// 加载halcon显示控件if(view.mWindowH==null){view.mWindowH=newVMHWindowControl();view.winFormHost.Child=view.mWindowH;}// 二次打开复原操作if(DispImage!=null&&DispImage.IsInitialized()){// ShowHRoi();}}}

显示图像

/// <summary>/// 参数变化回调函数/// </summary>/// <param name="obj"></param>privatevoidOnVarChanged(VarChangedEventParamModelobj){switch(obj.SendName.Split(',')[1]){case"InputImageLink":InputImageLinkText=obj.LinkName;// 获取图像到全局变量并显示图像GetDispImage(InputImageLinkText,true);break;default:break;}}

二 阈值参数设置

UI

<Border Grid.Row="1"><GroupBoxHeader="阈值分割参数"Grid.Row="1"><StackPanelOrientation="Vertical"Margin="5 0"><StackPanelOrientation="Horizontal"Margin="10 8"><TextBlockText="开始:"VerticalAlignment="Center"HorizontalAlignment="Center"Width="90"/><mah:NumericUpDownWidth="200"BorderThickness="0 0 0 1"Value="{Binding StartThre}"/></StackPanel><StackPanelOrientation="Horizontal"Margin="10 8"><TextBlockText="结束:"VerticalAlignment="Center"HorizontalAlignment="Center"Width="90"/><mah:NumericUpDownWidth="200"BorderThickness="0 0 0 1"Value="{Binding EndThre}"/></StackPanel></StackPanel></GroupBox></Border>

后端

privateint_StartThre=128;/// <summary>/// 起始阈值/// </summary>publicintStartThre{get{return_StartThre;}set{Set(ref_StartThre,value);}}privateint_EndThre=255;/// <summary>/// 结束阈值/// </summary>publicintEndtThre{get{return_EndThre;}set{Set(ref_EndThre,value);}}