mirror of
https://github.com/eggplantlwj/VisionEdit.git
synced 2026-06-06 20:38:17 +08:00
增加查找线工具
This commit is contained in:
@@ -0,0 +1,368 @@
|
||||
using System;
|
||||
using HalconDotNet;
|
||||
using DataStruct;
|
||||
using static DataStruct.DataStruct;
|
||||
using ToolBase;
|
||||
using HalconWindow.HalconWindow;
|
||||
using CommonMethods;
|
||||
|
||||
namespace FindLineTool
|
||||
{
|
||||
[Serializable]
|
||||
public class FindLine:IToolBase
|
||||
{
|
||||
internal bool toolEnable = true;
|
||||
/// <summary>
|
||||
/// 输入姿态
|
||||
/// </summary>
|
||||
internal PosXYU inputPose = new PosXYU();
|
||||
/// <summary>
|
||||
/// 制作模板时的输入位姿
|
||||
/// </summary>
|
||||
internal PosXYU templatePose = new PosXYU();
|
||||
/// <summary>
|
||||
/// 期望线起点行坐标
|
||||
/// </summary>
|
||||
internal HTuple expectLineStartRow = 200;
|
||||
/// <summary>
|
||||
/// 卡尺
|
||||
/// </summary>
|
||||
internal HObject contours;
|
||||
/// <summary>
|
||||
/// 期望线起点列坐标
|
||||
/// </summary>
|
||||
internal HTuple expectLineStartCol = 200;
|
||||
/// <summary>
|
||||
/// 期望线终点行坐标
|
||||
/// </summary>
|
||||
internal HTuple expectLineEndRow = 200;
|
||||
/// <summary>
|
||||
/// 期望线终点列坐标
|
||||
/// </summary>
|
||||
internal HTuple expectLineEndCol = 600;
|
||||
/// <summary>
|
||||
/// 找边极性,从明到暗或从暗到明
|
||||
/// </summary>
|
||||
internal string polarity = "negative";
|
||||
/// <summary>
|
||||
/// 卡尺数量
|
||||
/// </summary>
|
||||
internal int cliperNum = 20;
|
||||
/// <summary>
|
||||
/// 卡尺高
|
||||
/// </summary>
|
||||
internal int length = 80;
|
||||
/// <summary>
|
||||
/// 卡尺宽
|
||||
/// </summary>
|
||||
internal int weidth = 5;
|
||||
/// <summary>
|
||||
/// 边阈值
|
||||
/// </summary>
|
||||
internal int threshold = 30;
|
||||
/// <summary>
|
||||
/// 边Sigma
|
||||
/// </summary>
|
||||
internal double sigma = 1.0;
|
||||
/// <summary>
|
||||
/// 选择所查找到的边
|
||||
/// </summary>
|
||||
internal string edgeSelect = "all";
|
||||
/// <summary>
|
||||
/// 分数阈值
|
||||
/// </summary>
|
||||
internal double _minScore = 0.5;
|
||||
internal double minScore
|
||||
{
|
||||
get
|
||||
{
|
||||
return _minScore;
|
||||
}
|
||||
set
|
||||
{
|
||||
if(minScore >= 1)
|
||||
{
|
||||
_minScore = 1;
|
||||
}
|
||||
else if(minScore <= 0)
|
||||
{
|
||||
_minScore = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
_minScore = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// 找到的线段
|
||||
/// </summary>
|
||||
internal Line resultLine = new Line();
|
||||
/// <summary>
|
||||
/// 新的跟随姿态变化后的预期线信息
|
||||
/// </summary>
|
||||
HTuple newExpectLineStartRow = new HTuple(200), newExpectLineStartCol = new HTuple(200), newExpectLineEndRow = new HTuple(200), newExpectLineEndCol = new HTuple(600);
|
||||
/// <summary>
|
||||
/// 查找到的线的起点行坐标
|
||||
/// </summary>
|
||||
private HTuple _resultLineStartRow = 0;
|
||||
internal HTuple ResultLineStartRow
|
||||
{
|
||||
get
|
||||
{
|
||||
_resultLineStartRow = Math.Round((double)_resultLineStartRow, 3);
|
||||
return _resultLineStartRow;
|
||||
}
|
||||
set { _resultLineStartRow = value; }
|
||||
}
|
||||
/// <summary>
|
||||
/// 查找到的线的起点列坐标
|
||||
/// </summary>
|
||||
private HTuple _resultLineStartCol = 0;
|
||||
internal HTuple ResultLineStartCol
|
||||
{
|
||||
get
|
||||
{
|
||||
_resultLineStartCol = Math.Round((double)_resultLineStartCol, 3);
|
||||
return _resultLineStartCol;
|
||||
}
|
||||
set { _resultLineStartCol = value; }
|
||||
}
|
||||
/// <summary>
|
||||
/// 查找到的线的终点行坐标
|
||||
/// </summary>
|
||||
private HTuple _resultLineEndRow = 0;
|
||||
internal HTuple ResultLineEndRow
|
||||
{
|
||||
get
|
||||
{
|
||||
_resultLineEndRow = Math.Round((double)_resultLineEndRow, 3);
|
||||
return _resultLineEndRow;
|
||||
}
|
||||
set { _resultLineEndRow = value; }
|
||||
}
|
||||
/// <summary>
|
||||
/// 查找到的线的终点列坐标
|
||||
/// </summary>
|
||||
private HTuple _resultLineEndCol = 0;
|
||||
internal HTuple ResultLineEndCol
|
||||
{
|
||||
get
|
||||
{
|
||||
_resultLineEndCol = Math.Round((double)_resultLineEndCol, 3);
|
||||
return _resultLineEndCol;
|
||||
}
|
||||
set { _resultLineEndCol = value; }
|
||||
}
|
||||
/// <summary>
|
||||
/// 查找到线的方向
|
||||
/// </summary>
|
||||
private HTuple _angle = 0;
|
||||
internal HTuple Angle
|
||||
{
|
||||
get
|
||||
{
|
||||
_angle = Math.Round((double)_angle, 3);
|
||||
return _angle;
|
||||
}
|
||||
set { _angle = value; }
|
||||
}
|
||||
|
||||
public HObject inputImage { get; set; }
|
||||
|
||||
public ToolRunStatu toolRunStatu { get; set; }
|
||||
public void DispImage()
|
||||
{
|
||||
FormFindLine.Instance.myHwindow.HobjectToHimage(inputImage);
|
||||
}
|
||||
|
||||
public void UpdateImage()
|
||||
{
|
||||
FormFindLine.Instance.myHwindow.ClearWindow();
|
||||
DispImage();
|
||||
}
|
||||
|
||||
public void Run()
|
||||
{
|
||||
if(inputImage == null)
|
||||
{
|
||||
FormFindLine.Instance.TextBoxMessageDisp("图像为空", System.Drawing.Color.Red);
|
||||
toolRunStatu = ToolRunStatu.Not_Input_Image;
|
||||
return;
|
||||
}
|
||||
try
|
||||
{
|
||||
UpdateImage();
|
||||
if (inputPose != null)
|
||||
{
|
||||
HTuple Row = inputPose.X - templatePose.X;
|
||||
HTuple Col = inputPose.Y - templatePose.Y;
|
||||
HTuple angle = inputPose.U - templatePose.U;
|
||||
|
||||
HTuple _homMat2D;
|
||||
HOperatorSet.HomMat2dIdentity(out _homMat2D);
|
||||
HOperatorSet.HomMat2dRotate(_homMat2D, (HTuple)(angle), (HTuple)templatePose.X, (HTuple)templatePose.Y, out _homMat2D);
|
||||
HOperatorSet.HomMat2dTranslate(_homMat2D, (HTuple)(Row), (HTuple)(Col), out _homMat2D);
|
||||
|
||||
//对预期线的起始点做放射变换
|
||||
HOperatorSet.AffineTransPixel(_homMat2D, (HTuple)expectLineStartRow, (HTuple)expectLineStartCol, out newExpectLineStartRow, out newExpectLineStartCol);
|
||||
HOperatorSet.AffineTransPixel(_homMat2D, (HTuple)expectLineEndRow, (HTuple)expectLineEndCol, out newExpectLineEndRow, out newExpectLineEndCol);
|
||||
}
|
||||
else
|
||||
{
|
||||
newExpectLineStartRow = expectLineStartRow;
|
||||
newExpectLineStartCol = expectLineStartCol;
|
||||
newExpectLineEndRow = expectLineEndRow;
|
||||
newExpectLineEndCol = expectLineEndCol;
|
||||
}
|
||||
|
||||
HTuple handleID;
|
||||
HOperatorSet.CreateMetrologyModel(out handleID);
|
||||
HTuple width, height;
|
||||
HOperatorSet.GetImageSize(inputImage, out width, out height);
|
||||
HOperatorSet.SetMetrologyModelImageSize(handleID, width[0], height[0]);
|
||||
HTuple index;
|
||||
HOperatorSet.AddMetrologyObjectLineMeasure(handleID, newExpectLineStartRow, newExpectLineStartCol, newExpectLineEndRow, newExpectLineEndCol, new HTuple(50), new HTuple(20), new HTuple(1), new HTuple(30), new HTuple(), new HTuple(), out index);
|
||||
|
||||
//参数在这里设置
|
||||
HOperatorSet.SetMetrologyObjectParam(handleID, new HTuple("all"), new HTuple("measure_transition"), new HTuple(polarity));
|
||||
HOperatorSet.SetMetrologyObjectParam(handleID, new HTuple("all"), new HTuple("num_measures"), new HTuple(cliperNum));
|
||||
HOperatorSet.SetMetrologyObjectParam(handleID, new HTuple("all"), new HTuple("measure_length1"), new HTuple(length));
|
||||
HOperatorSet.SetMetrologyObjectParam(handleID, new HTuple("all"), new HTuple("measure_length2"), new HTuple(weidth));
|
||||
HOperatorSet.SetMetrologyObjectParam(handleID, new HTuple("all"), new HTuple("measure_threshold"), new HTuple(threshold));
|
||||
HOperatorSet.SetMetrologyObjectParam(handleID, new HTuple("all"), new HTuple("measure_select"), new HTuple(edgeSelect));
|
||||
HOperatorSet.SetMetrologyObjectParam(handleID, new HTuple("all"), new HTuple("measure_sigma"), new HTuple(sigma));
|
||||
HOperatorSet.SetMetrologyObjectParam(handleID, new HTuple("all"), new HTuple("min_score"), new HTuple(minScore));
|
||||
HOperatorSet.ApplyMetrologyModel(inputImage, handleID);
|
||||
|
||||
//显示所有卡尺
|
||||
HTuple pointRow, pointCol;
|
||||
HOperatorSet.GetMetrologyObjectMeasures(out contours, handleID, new HTuple("all"), new HTuple("all"), out pointRow, out pointCol);
|
||||
HOperatorSet.SetColor(FormFindLine.Instance.myHwindow.hWindowControl.HalconWindow, new HTuple("blue"));
|
||||
HOperatorSet.DispObj(contours, FormFindLine.Instance.myHwindow.hWindowControl.HalconWindow);
|
||||
FormFindLine.Instance.myHwindow.DispObj(contours, "blue");
|
||||
|
||||
//显示指示找线方向的箭头
|
||||
HTuple arrowAngle;
|
||||
HOperatorSet.AngleLx(newExpectLineStartRow, newExpectLineStartCol, newExpectLineEndRow, newExpectLineEndCol, out arrowAngle);
|
||||
#region 测试箭头
|
||||
|
||||
|
||||
#endregion
|
||||
arrowAngle = arrowAngle + Math.PI / 2;
|
||||
arrowAngle = arrowAngle.TupleDeg();
|
||||
HTuple row = (newExpectLineStartRow + newExpectLineEndRow) / 2;
|
||||
HTuple column = (newExpectLineStartCol + newExpectLineEndCol) / 2;
|
||||
double drow, dcolumn;
|
||||
double arrowLength = length + 100;
|
||||
if (0 <= arrowAngle && arrowAngle <= 90)
|
||||
{
|
||||
drow = Math.Abs(arrowLength * Math.Sin(((HTuple)arrowAngle).TupleRad()));
|
||||
dcolumn = Math.Abs(arrowLength * Math.Cos(((HTuple)arrowAngle).TupleRad()));
|
||||
HOperatorSet.DispArrow(FormFindLine.Instance.myHwindow.hWindowControl.HalconWindow, row, column, row - drow, column + dcolumn, 5.0);
|
||||
}
|
||||
else if (arrowAngle > 90 && arrowAngle <= 180)
|
||||
{
|
||||
drow = arrowLength * Math.Sin(((HTuple)(180 - arrowAngle)).TupleRad());
|
||||
dcolumn = arrowLength * Math.Cos(((HTuple)(180 - arrowAngle)).TupleRad());
|
||||
HOperatorSet.DispArrow(FormFindLine.Instance.myHwindow.hWindowControl.HalconWindow, row, column, row - drow, column - dcolumn, 5.0);
|
||||
}
|
||||
else if (arrowAngle < 0 && arrowAngle >= -90)
|
||||
{
|
||||
drow = arrowLength * Math.Sin(((HTuple)arrowAngle * -1).TupleRad());
|
||||
dcolumn = arrowLength * Math.Cos(((HTuple)arrowAngle * -1).TupleRad());
|
||||
HOperatorSet.DispArrow(FormFindLine.Instance.myHwindow.hWindowControl.HalconWindow, row, column, row + drow, column + dcolumn, 5.0);
|
||||
}
|
||||
else if (arrowAngle < -90 && arrowAngle >= -180)
|
||||
{
|
||||
drow = Math.Abs(arrowLength * Math.Sin(((HTuple)arrowAngle + 180).TupleRad()));
|
||||
dcolumn = Math.Abs(arrowLength * Math.Cos(((HTuple)arrowAngle + 180).TupleRad()));
|
||||
HOperatorSet.DispArrow(FormFindLine.Instance.myHwindow.hWindowControl.HalconWindow, row, column, row + drow, column - dcolumn, 5.0);
|
||||
}
|
||||
|
||||
//把点显示出来
|
||||
HObject cross;
|
||||
HOperatorSet.GenCrossContourXld(out cross, pointRow, pointCol, new HTuple(12), new HTuple(0));
|
||||
HOperatorSet.SetColor(FormFindLine.Instance.myHwindow.hWindowControl.HalconWindow, new HTuple("orange"));
|
||||
HOperatorSet.DispObj(cross, FormFindLine.Instance.myHwindow.hWindowControl.HalconWindow);
|
||||
FormFindLine.Instance.myHwindow.DispObj(cross, "orange");
|
||||
|
||||
//得到所找到的线
|
||||
HTuple parameter;
|
||||
HObject line;
|
||||
HOperatorSet.GetMetrologyObjectResult(handleID, new HTuple("all"), new HTuple("all"), new HTuple("result_type"), new HTuple("all_param"), out parameter);
|
||||
HOperatorSet.GetMetrologyObjectResultContour(out line, handleID, new HTuple("all"), new HTuple("all"), new HTuple(1.5));
|
||||
|
||||
if (parameter.Length >= 4)
|
||||
{
|
||||
ResultLineStartRow = parameter[0];
|
||||
ResultLineStartCol = parameter[1];
|
||||
ResultLineEndRow = parameter[2];
|
||||
ResultLineEndCol = parameter[3];
|
||||
Point start = new Point() { Row = ResultLineStartRow, Col = ResultLineStartCol };
|
||||
Point end = new Point() { Row = ResultLineEndRow, Col = ResultLineEndCol };
|
||||
resultLine = new Line() { StartPoint = start, EndPoint = end };
|
||||
|
||||
//显示找到的线
|
||||
HOperatorSet.SetColor(FormFindLine.Instance.myHwindow.hWindowControl.HalconWindow, new HTuple("green"));
|
||||
// HOperatorSet.DispObj(line, GetWindowHandle(jobName));
|
||||
FormFindLine.Instance.myHwindow.hWindowControl.HalconWindow.SetLineWidth(2);
|
||||
FormFindLine.Instance.myHwindow.DispObj(line, "green");
|
||||
}
|
||||
HOperatorSet.AngleLx(ResultLineStartRow, ResultLineStartCol, ResultLineEndRow, ResultLineEndCol, out _angle);
|
||||
HOperatorSet.ClearMetrologyModel(handleID);
|
||||
|
||||
FormFindLine.Instance.tbx_resultStartRow.Text = ResultLineStartRow.ToString();
|
||||
FormFindLine.Instance.tbx_resultStartCol.Text = ResultLineEndCol.ToString();
|
||||
FormFindLine.Instance.tbx_resultEndRow.Text = ResultLineEndRow.ToString();
|
||||
FormFindLine.Instance.tbx_resultEndCol.Text = ResultLineEndCol.ToString();
|
||||
FormFindLine.Instance.TextBoxMessageDisp("运行成功", System.Drawing.Color.Green);
|
||||
toolRunStatu = ToolRunStatu.Succeed;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
FormFindLine.Instance.TextBoxMessageDisp("工具运行异常" + ex.Message, System.Drawing.Color.Red);
|
||||
}
|
||||
}
|
||||
|
||||
internal void DrawExpectLine(HWindow_Final myHwindow)
|
||||
{
|
||||
if(inputImage != null)
|
||||
{
|
||||
try
|
||||
{
|
||||
myHwindow.DrawModel = true;
|
||||
myHwindow.Focus();
|
||||
HOperatorSet.SetColor(myHwindow.hWindowControl.HalconWindow, new HTuple("green"));
|
||||
HOperatorSet.DrawLineMod(myHwindow.hWindowControl.HalconWindow, newExpectLineStartRow, newExpectLineStartCol, newExpectLineEndRow, newExpectLineEndCol, out expectLineStartRow, out expectLineStartCol, out expectLineEndRow, out expectLineEndCol);
|
||||
|
||||
if (inputPose != null)
|
||||
{
|
||||
templatePose.X = inputPose.X;
|
||||
templatePose.Y = inputPose.Y;
|
||||
templatePose.U = inputPose.U;
|
||||
}
|
||||
|
||||
FormFindLine.Instance.tbx_expectLineStartRow.Text = expectLineStartRow.TupleString("10.3f");
|
||||
FormFindLine.Instance.tbx_expectLineStartCol.Text = expectLineStartCol.TupleString("10.3f");
|
||||
FormFindLine.Instance.tbx_expectLineEndRow.Text = expectLineEndRow.TupleString("10.3f");
|
||||
FormFindLine.Instance.tbx_expectLineEndCol.Text = expectLineEndCol.TupleString("10.3f");
|
||||
myHwindow.DrawModel = false;
|
||||
|
||||
Run();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
FormFindLine.Instance.TextBoxMessageDisp(ex.Message, System.Drawing.Color.Red);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
FormFindLine.Instance.TextBoxMessageDisp("图像为空", System.Drawing.Color.Red);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,88 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProjectGuid>{C3BB2B1C-ED0C-4879-A6D3-D86342C5086E}</ProjectGuid>
|
||||
<OutputType>Library</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>FindLineTool</RootNamespace>
|
||||
<AssemblyName>FindLineTool</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="halcondotnet">
|
||||
<HintPath>C:\Program Files\MVTec\HALCON-19.05-Progress\bin\dotnet20\halcondotnet.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Drawing" />
|
||||
<Reference Include="System.Windows.Forms" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Net.Http" />
|
||||
<Reference Include="System.Xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="FindLine.cs" />
|
||||
<Compile Include="FormFindLine.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="FormFindLine.Designer.cs">
|
||||
<DependentUpon>FormFindLine.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="FormFindLine.resx">
|
||||
<DependentUpon>FormFindLine.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\CommonMethods\CommonHelper.csproj">
|
||||
<Project>{1C8D0DDC-2086-48A9-9586-F2B643E2FC54}</Project>
|
||||
<Name>CommonHelper</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\DataStruct\DataStruct.csproj">
|
||||
<Project>{DF3D4D4C-02DF-4F92-9FD4-0A861F64B0EF}</Project>
|
||||
<Name>DataStruct</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\HalconWindowTest\HalconWindow.csproj">
|
||||
<Project>{4ADC75AE-59C7-4D36-B675-A6CE51B6F5BA}</Project>
|
||||
<Name>HalconWindow</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\ToolBase\ToolBase.csproj">
|
||||
<Project>{7CD50B44-BF56-4E8E-8FA1-05F6968C1835}</Project>
|
||||
<Name>ToolBase</Name>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||
Other similar extension points exist, see Microsoft.Common.targets.
|
||||
<Target Name="BeforeBuild">
|
||||
</Target>
|
||||
<Target Name="AfterBuild">
|
||||
</Target>
|
||||
-->
|
||||
</Project>
|
||||
Generated
+619
@@ -0,0 +1,619 @@
|
||||
namespace FindLineTool
|
||||
{
|
||||
partial class FormFindLine
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormFindLine));
|
||||
this.splitContainer1 = new System.Windows.Forms.SplitContainer();
|
||||
this.panel1 = new System.Windows.Forms.Panel();
|
||||
this.groupBox1 = new System.Windows.Forms.GroupBox();
|
||||
this.label3 = new System.Windows.Forms.Label();
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.tbx_expectLineEndRow = new System.Windows.Forms.TextBox();
|
||||
this.label4 = new System.Windows.Forms.Label();
|
||||
this.tbx_expectLineStartCol = new System.Windows.Forms.TextBox();
|
||||
this.tbx_expectLineEndCol = new System.Windows.Forms.TextBox();
|
||||
this.label2 = new System.Windows.Forms.Label();
|
||||
this.tbx_expectLineStartRow = new System.Windows.Forms.TextBox();
|
||||
this.label6 = new System.Windows.Forms.Label();
|
||||
this.groupBox2 = new System.Windows.Forms.GroupBox();
|
||||
this.tbx_resultEndCol = new System.Windows.Forms.TextBox();
|
||||
this.label8 = new System.Windows.Forms.Label();
|
||||
this.tbx_resultStartRow = new System.Windows.Forms.TextBox();
|
||||
this.tbx_resultStartCol = new System.Windows.Forms.TextBox();
|
||||
this.tbx_resultEndRow = new System.Windows.Forms.TextBox();
|
||||
this.label7 = new System.Windows.Forms.Label();
|
||||
this.label10 = new System.Windows.Forms.Label();
|
||||
this.label9 = new System.Windows.Forms.Label();
|
||||
this.tbx_minScore = new System.Windows.Forms.TextBox();
|
||||
this.label5 = new System.Windows.Forms.Label();
|
||||
this.label14 = new System.Windows.Forms.Label();
|
||||
this.label13 = new System.Windows.Forms.Label();
|
||||
this.label12 = new System.Windows.Forms.Label();
|
||||
this.label11 = new System.Windows.Forms.Label();
|
||||
this.tbx_caliperLength = new System.Windows.Forms.TextBox();
|
||||
this.tbx_threshold = new System.Windows.Forms.TextBox();
|
||||
this.tbx_caliperNum = new System.Windows.Forms.TextBox();
|
||||
this.cbx_polarity = new System.Windows.Forms.ComboBox();
|
||||
this.btn_runFindLineTool = new System.Windows.Forms.Button();
|
||||
this.btn_moveCliperRegion = new System.Windows.Forms.Button();
|
||||
this.cbx_edgeSelect = new System.Windows.Forms.ComboBox();
|
||||
this.txbLog = new System.Windows.Forms.TextBox();
|
||||
this.tbx_Sigma = new System.Windows.Forms.TextBox();
|
||||
this.label15 = new System.Windows.Forms.Label();
|
||||
this.groupBox3 = new System.Windows.Forms.GroupBox();
|
||||
this.checkBox1 = new System.Windows.Forms.CheckBox();
|
||||
this.checkBox2 = new System.Windows.Forms.CheckBox();
|
||||
this.tbx_caliperLength2 = new System.Windows.Forms.TextBox();
|
||||
this.label16 = new System.Windows.Forms.Label();
|
||||
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
|
||||
this.splitContainer1.Panel1.SuspendLayout();
|
||||
this.splitContainer1.Panel2.SuspendLayout();
|
||||
this.splitContainer1.SuspendLayout();
|
||||
this.groupBox1.SuspendLayout();
|
||||
this.groupBox2.SuspendLayout();
|
||||
this.groupBox3.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// splitContainer1
|
||||
//
|
||||
this.splitContainer1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
| System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.splitContainer1.Location = new System.Drawing.Point(0, 2);
|
||||
this.splitContainer1.Name = "splitContainer1";
|
||||
//
|
||||
// splitContainer1.Panel1
|
||||
//
|
||||
this.splitContainer1.Panel1.Controls.Add(this.panel1);
|
||||
//
|
||||
// splitContainer1.Panel2
|
||||
//
|
||||
this.splitContainer1.Panel2.BackColor = System.Drawing.Color.White;
|
||||
this.splitContainer1.Panel2.Controls.Add(this.groupBox3);
|
||||
this.splitContainer1.Panel2.Controls.Add(this.groupBox1);
|
||||
this.splitContainer1.Panel2.Controls.Add(this.label6);
|
||||
this.splitContainer1.Panel2.Controls.Add(this.groupBox2);
|
||||
this.splitContainer1.Panel2.Controls.Add(this.tbx_minScore);
|
||||
this.splitContainer1.Panel2.Controls.Add(this.label5);
|
||||
this.splitContainer1.Panel2.Controls.Add(this.label16);
|
||||
this.splitContainer1.Panel2.Controls.Add(this.label14);
|
||||
this.splitContainer1.Panel2.Controls.Add(this.label15);
|
||||
this.splitContainer1.Panel2.Controls.Add(this.label13);
|
||||
this.splitContainer1.Panel2.Controls.Add(this.label12);
|
||||
this.splitContainer1.Panel2.Controls.Add(this.label11);
|
||||
this.splitContainer1.Panel2.Controls.Add(this.tbx_caliperLength2);
|
||||
this.splitContainer1.Panel2.Controls.Add(this.tbx_Sigma);
|
||||
this.splitContainer1.Panel2.Controls.Add(this.tbx_caliperLength);
|
||||
this.splitContainer1.Panel2.Controls.Add(this.tbx_threshold);
|
||||
this.splitContainer1.Panel2.Controls.Add(this.tbx_caliperNum);
|
||||
this.splitContainer1.Panel2.Controls.Add(this.cbx_polarity);
|
||||
this.splitContainer1.Panel2.Controls.Add(this.btn_runFindLineTool);
|
||||
this.splitContainer1.Panel2.Controls.Add(this.btn_moveCliperRegion);
|
||||
this.splitContainer1.Panel2.Controls.Add(this.cbx_edgeSelect);
|
||||
this.splitContainer1.Size = new System.Drawing.Size(1129, 479);
|
||||
this.splitContainer1.SplitterDistance = 563;
|
||||
this.splitContainer1.TabIndex = 0;
|
||||
//
|
||||
// panel1
|
||||
//
|
||||
this.panel1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.panel1.Location = new System.Drawing.Point(0, 0);
|
||||
this.panel1.Name = "panel1";
|
||||
this.panel1.Size = new System.Drawing.Size(563, 479);
|
||||
this.panel1.TabIndex = 272;
|
||||
//
|
||||
// groupBox1
|
||||
//
|
||||
this.groupBox1.Controls.Add(this.label3);
|
||||
this.groupBox1.Controls.Add(this.label1);
|
||||
this.groupBox1.Controls.Add(this.tbx_expectLineEndRow);
|
||||
this.groupBox1.Controls.Add(this.label4);
|
||||
this.groupBox1.Controls.Add(this.tbx_expectLineStartCol);
|
||||
this.groupBox1.Controls.Add(this.tbx_expectLineEndCol);
|
||||
this.groupBox1.Controls.Add(this.label2);
|
||||
this.groupBox1.Controls.Add(this.tbx_expectLineStartRow);
|
||||
this.groupBox1.Location = new System.Drawing.Point(14, 19);
|
||||
this.groupBox1.Name = "groupBox1";
|
||||
this.groupBox1.Size = new System.Drawing.Size(224, 150);
|
||||
this.groupBox1.TabIndex = 318;
|
||||
this.groupBox1.TabStop = false;
|
||||
this.groupBox1.Text = "输入坐标";
|
||||
//
|
||||
// label3
|
||||
//
|
||||
this.label3.AutoSize = true;
|
||||
this.label3.Location = new System.Drawing.Point(22, 89);
|
||||
this.label3.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
|
||||
this.label3.Name = "label3";
|
||||
this.label3.Size = new System.Drawing.Size(77, 12);
|
||||
this.label3.TabIndex = 276;
|
||||
this.label3.Text = "终点行坐标:";
|
||||
//
|
||||
// label1
|
||||
//
|
||||
this.label1.AutoSize = true;
|
||||
this.label1.Location = new System.Drawing.Point(22, 31);
|
||||
this.label1.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(77, 12);
|
||||
this.label1.TabIndex = 272;
|
||||
this.label1.Text = "起点行坐标:";
|
||||
//
|
||||
// tbx_expectLineEndRow
|
||||
//
|
||||
this.tbx_expectLineEndRow.Location = new System.Drawing.Point(110, 87);
|
||||
this.tbx_expectLineEndRow.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.tbx_expectLineEndRow.Name = "tbx_expectLineEndRow";
|
||||
this.tbx_expectLineEndRow.Size = new System.Drawing.Size(71, 21);
|
||||
this.tbx_expectLineEndRow.TabIndex = 275;
|
||||
this.tbx_expectLineEndRow.TextChanged += new System.EventHandler(this.tbx_expectLineEndRow_TextChanged);
|
||||
//
|
||||
// label4
|
||||
//
|
||||
this.label4.AutoSize = true;
|
||||
this.label4.Location = new System.Drawing.Point(22, 119);
|
||||
this.label4.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
|
||||
this.label4.Name = "label4";
|
||||
this.label4.Size = new System.Drawing.Size(77, 12);
|
||||
this.label4.TabIndex = 278;
|
||||
this.label4.Text = "终点列坐标:";
|
||||
//
|
||||
// tbx_expectLineStartCol
|
||||
//
|
||||
this.tbx_expectLineStartCol.Location = new System.Drawing.Point(110, 58);
|
||||
this.tbx_expectLineStartCol.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.tbx_expectLineStartCol.Name = "tbx_expectLineStartCol";
|
||||
this.tbx_expectLineStartCol.Size = new System.Drawing.Size(71, 21);
|
||||
this.tbx_expectLineStartCol.TabIndex = 273;
|
||||
this.tbx_expectLineStartCol.TextChanged += new System.EventHandler(this.tbx_expectLineStartCol_TextChanged);
|
||||
//
|
||||
// tbx_expectLineEndCol
|
||||
//
|
||||
this.tbx_expectLineEndCol.Location = new System.Drawing.Point(110, 116);
|
||||
this.tbx_expectLineEndCol.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.tbx_expectLineEndCol.Name = "tbx_expectLineEndCol";
|
||||
this.tbx_expectLineEndCol.Size = new System.Drawing.Size(71, 21);
|
||||
this.tbx_expectLineEndCol.TabIndex = 277;
|
||||
this.tbx_expectLineEndCol.TextChanged += new System.EventHandler(this.tbx_expectLineEndCol_TextChanged);
|
||||
//
|
||||
// label2
|
||||
//
|
||||
this.label2.AutoSize = true;
|
||||
this.label2.Location = new System.Drawing.Point(22, 60);
|
||||
this.label2.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
|
||||
this.label2.Name = "label2";
|
||||
this.label2.Size = new System.Drawing.Size(77, 12);
|
||||
this.label2.TabIndex = 274;
|
||||
this.label2.Text = "起点列坐标:";
|
||||
//
|
||||
// tbx_expectLineStartRow
|
||||
//
|
||||
this.tbx_expectLineStartRow.Location = new System.Drawing.Point(110, 28);
|
||||
this.tbx_expectLineStartRow.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.tbx_expectLineStartRow.Name = "tbx_expectLineStartRow";
|
||||
this.tbx_expectLineStartRow.Size = new System.Drawing.Size(71, 21);
|
||||
this.tbx_expectLineStartRow.TabIndex = 271;
|
||||
this.tbx_expectLineStartRow.TextChanged += new System.EventHandler(this.tbx_expectLineStartRow_TextChanged);
|
||||
//
|
||||
// label6
|
||||
//
|
||||
this.label6.AutoSize = true;
|
||||
this.label6.Font = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.label6.Location = new System.Drawing.Point(34, 187);
|
||||
this.label6.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
|
||||
this.label6.Name = "label6";
|
||||
this.label6.Size = new System.Drawing.Size(79, 20);
|
||||
this.label6.TabIndex = 293;
|
||||
this.label6.Text = "最小分数:";
|
||||
//
|
||||
// groupBox2
|
||||
//
|
||||
this.groupBox2.Controls.Add(this.tbx_resultEndCol);
|
||||
this.groupBox2.Controls.Add(this.label8);
|
||||
this.groupBox2.Controls.Add(this.tbx_resultStartRow);
|
||||
this.groupBox2.Controls.Add(this.tbx_resultStartCol);
|
||||
this.groupBox2.Controls.Add(this.tbx_resultEndRow);
|
||||
this.groupBox2.Controls.Add(this.label7);
|
||||
this.groupBox2.Controls.Add(this.label10);
|
||||
this.groupBox2.Controls.Add(this.label9);
|
||||
this.groupBox2.Location = new System.Drawing.Point(296, 19);
|
||||
this.groupBox2.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.groupBox2.Name = "groupBox2";
|
||||
this.groupBox2.Padding = new System.Windows.Forms.Padding(2);
|
||||
this.groupBox2.Size = new System.Drawing.Size(201, 150);
|
||||
this.groupBox2.TabIndex = 297;
|
||||
this.groupBox2.TabStop = false;
|
||||
this.groupBox2.Text = "结果线";
|
||||
//
|
||||
// tbx_resultEndCol
|
||||
//
|
||||
this.tbx_resultEndCol.Location = new System.Drawing.Point(103, 123);
|
||||
this.tbx_resultEndCol.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.tbx_resultEndCol.Name = "tbx_resultEndCol";
|
||||
this.tbx_resultEndCol.Size = new System.Drawing.Size(71, 21);
|
||||
this.tbx_resultEndCol.TabIndex = 108;
|
||||
//
|
||||
// label8
|
||||
//
|
||||
this.label8.AutoSize = true;
|
||||
this.label8.Location = new System.Drawing.Point(27, 126);
|
||||
this.label8.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
|
||||
this.label8.Name = "label8";
|
||||
this.label8.Size = new System.Drawing.Size(77, 12);
|
||||
this.label8.TabIndex = 109;
|
||||
this.label8.Text = "终点列坐标:";
|
||||
//
|
||||
// tbx_resultStartRow
|
||||
//
|
||||
this.tbx_resultStartRow.Location = new System.Drawing.Point(103, 24);
|
||||
this.tbx_resultStartRow.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.tbx_resultStartRow.Name = "tbx_resultStartRow";
|
||||
this.tbx_resultStartRow.Size = new System.Drawing.Size(71, 21);
|
||||
this.tbx_resultStartRow.TabIndex = 102;
|
||||
//
|
||||
// tbx_resultStartCol
|
||||
//
|
||||
this.tbx_resultStartCol.Location = new System.Drawing.Point(103, 57);
|
||||
this.tbx_resultStartCol.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.tbx_resultStartCol.Name = "tbx_resultStartCol";
|
||||
this.tbx_resultStartCol.Size = new System.Drawing.Size(71, 21);
|
||||
this.tbx_resultStartCol.TabIndex = 104;
|
||||
//
|
||||
// tbx_resultEndRow
|
||||
//
|
||||
this.tbx_resultEndRow.Location = new System.Drawing.Point(103, 90);
|
||||
this.tbx_resultEndRow.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.tbx_resultEndRow.Name = "tbx_resultEndRow";
|
||||
this.tbx_resultEndRow.Size = new System.Drawing.Size(71, 21);
|
||||
this.tbx_resultEndRow.TabIndex = 106;
|
||||
//
|
||||
// label7
|
||||
//
|
||||
this.label7.AutoSize = true;
|
||||
this.label7.Location = new System.Drawing.Point(27, 27);
|
||||
this.label7.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
|
||||
this.label7.Name = "label7";
|
||||
this.label7.Size = new System.Drawing.Size(77, 12);
|
||||
this.label7.TabIndex = 103;
|
||||
this.label7.Text = "起点行坐标:";
|
||||
//
|
||||
// label10
|
||||
//
|
||||
this.label10.AutoSize = true;
|
||||
this.label10.Location = new System.Drawing.Point(27, 93);
|
||||
this.label10.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
|
||||
this.label10.Name = "label10";
|
||||
this.label10.Size = new System.Drawing.Size(77, 12);
|
||||
this.label10.TabIndex = 107;
|
||||
this.label10.Text = "终点行坐标:";
|
||||
//
|
||||
// label9
|
||||
//
|
||||
this.label9.AutoSize = true;
|
||||
this.label9.Location = new System.Drawing.Point(27, 60);
|
||||
this.label9.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
|
||||
this.label9.Name = "label9";
|
||||
this.label9.Size = new System.Drawing.Size(77, 12);
|
||||
this.label9.TabIndex = 105;
|
||||
this.label9.Text = "起点列坐标:";
|
||||
//
|
||||
// tbx_minScore
|
||||
//
|
||||
this.tbx_minScore.Font = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.tbx_minScore.Location = new System.Drawing.Point(124, 184);
|
||||
this.tbx_minScore.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.tbx_minScore.Name = "tbx_minScore";
|
||||
this.tbx_minScore.Size = new System.Drawing.Size(92, 26);
|
||||
this.tbx_minScore.TabIndex = 292;
|
||||
//
|
||||
// label5
|
||||
//
|
||||
this.label5.AutoSize = true;
|
||||
this.label5.Font = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.label5.Location = new System.Drawing.Point(34, 410);
|
||||
this.label5.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
|
||||
this.label5.Name = "label5";
|
||||
this.label5.Size = new System.Drawing.Size(79, 20);
|
||||
this.label5.TabIndex = 279;
|
||||
this.label5.Text = "结果选择:";
|
||||
//
|
||||
// label14
|
||||
//
|
||||
this.label14.AutoSize = true;
|
||||
this.label14.Font = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.label14.Location = new System.Drawing.Point(34, 247);
|
||||
this.label14.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
|
||||
this.label14.Name = "label14";
|
||||
this.label14.Size = new System.Drawing.Size(65, 20);
|
||||
this.label14.TabIndex = 302;
|
||||
this.label14.Text = "卡尺长:";
|
||||
//
|
||||
// label13
|
||||
//
|
||||
this.label13.AutoSize = true;
|
||||
this.label13.Font = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.label13.Location = new System.Drawing.Point(34, 314);
|
||||
this.label13.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
|
||||
this.label13.Name = "label13";
|
||||
this.label13.Size = new System.Drawing.Size(51, 20);
|
||||
this.label13.TabIndex = 310;
|
||||
this.label13.Text = "阈值:";
|
||||
//
|
||||
// label12
|
||||
//
|
||||
this.label12.AutoSize = true;
|
||||
this.label12.Font = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.label12.Location = new System.Drawing.Point(34, 217);
|
||||
this.label12.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
|
||||
this.label12.Name = "label12";
|
||||
this.label12.Size = new System.Drawing.Size(65, 20);
|
||||
this.label12.TabIndex = 300;
|
||||
this.label12.Text = "卡尺数:";
|
||||
//
|
||||
// label11
|
||||
//
|
||||
this.label11.AutoSize = true;
|
||||
this.label11.Font = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.label11.Location = new System.Drawing.Point(34, 380);
|
||||
this.label11.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
|
||||
this.label11.Name = "label11";
|
||||
this.label11.Size = new System.Drawing.Size(51, 20);
|
||||
this.label11.TabIndex = 298;
|
||||
this.label11.Text = "极性:";
|
||||
//
|
||||
// tbx_caliperLength
|
||||
//
|
||||
this.tbx_caliperLength.Font = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.tbx_caliperLength.Location = new System.Drawing.Point(124, 244);
|
||||
this.tbx_caliperLength.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.tbx_caliperLength.Name = "tbx_caliperLength";
|
||||
this.tbx_caliperLength.Size = new System.Drawing.Size(92, 26);
|
||||
this.tbx_caliperLength.TabIndex = 301;
|
||||
//
|
||||
// tbx_threshold
|
||||
//
|
||||
this.tbx_threshold.Font = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.tbx_threshold.Location = new System.Drawing.Point(124, 311);
|
||||
this.tbx_threshold.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.tbx_threshold.Name = "tbx_threshold";
|
||||
this.tbx_threshold.Size = new System.Drawing.Size(92, 26);
|
||||
this.tbx_threshold.TabIndex = 309;
|
||||
//
|
||||
// tbx_caliperNum
|
||||
//
|
||||
this.tbx_caliperNum.Font = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.tbx_caliperNum.Location = new System.Drawing.Point(124, 214);
|
||||
this.tbx_caliperNum.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.tbx_caliperNum.Name = "tbx_caliperNum";
|
||||
this.tbx_caliperNum.Size = new System.Drawing.Size(92, 26);
|
||||
this.tbx_caliperNum.TabIndex = 299;
|
||||
//
|
||||
// cbx_polarity
|
||||
//
|
||||
this.cbx_polarity.Font = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.cbx_polarity.FormattingEnabled = true;
|
||||
this.cbx_polarity.Items.AddRange(new object[] {
|
||||
"从明到暗",
|
||||
"从暗到明"});
|
||||
this.cbx_polarity.Location = new System.Drawing.Point(124, 377);
|
||||
this.cbx_polarity.Name = "cbx_polarity";
|
||||
this.cbx_polarity.Size = new System.Drawing.Size(92, 28);
|
||||
this.cbx_polarity.TabIndex = 314;
|
||||
this.cbx_polarity.Text = "从明到暗";
|
||||
//
|
||||
// btn_runFindLineTool
|
||||
//
|
||||
this.btn_runFindLineTool.Location = new System.Drawing.Point(440, 400);
|
||||
this.btn_runFindLineTool.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
|
||||
this.btn_runFindLineTool.Name = "btn_runFindLineTool";
|
||||
this.btn_runFindLineTool.Size = new System.Drawing.Size(90, 48);
|
||||
this.btn_runFindLineTool.TabIndex = 270;
|
||||
this.btn_runFindLineTool.Text = "运行";
|
||||
this.btn_runFindLineTool.UseVisualStyleBackColor = true;
|
||||
this.btn_runFindLineTool.Click += new System.EventHandler(this.btn_runFindLineTool_Click);
|
||||
//
|
||||
// btn_moveCliperRegion
|
||||
//
|
||||
this.btn_moveCliperRegion.Location = new System.Drawing.Point(296, 400);
|
||||
this.btn_moveCliperRegion.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
|
||||
this.btn_moveCliperRegion.Name = "btn_moveCliperRegion";
|
||||
this.btn_moveCliperRegion.Size = new System.Drawing.Size(90, 48);
|
||||
this.btn_moveCliperRegion.TabIndex = 269;
|
||||
this.btn_moveCliperRegion.Text = "编辑卡尺";
|
||||
this.btn_moveCliperRegion.UseVisualStyleBackColor = true;
|
||||
this.btn_moveCliperRegion.Click += new System.EventHandler(this.btn_moveCliperRegion_Click);
|
||||
//
|
||||
// cbx_edgeSelect
|
||||
//
|
||||
this.cbx_edgeSelect.Font = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.cbx_edgeSelect.FormattingEnabled = true;
|
||||
this.cbx_edgeSelect.Items.AddRange(new object[] {
|
||||
"all",
|
||||
"first",
|
||||
"last"});
|
||||
this.cbx_edgeSelect.Location = new System.Drawing.Point(124, 408);
|
||||
this.cbx_edgeSelect.Name = "cbx_edgeSelect";
|
||||
this.cbx_edgeSelect.Size = new System.Drawing.Size(92, 28);
|
||||
this.cbx_edgeSelect.TabIndex = 317;
|
||||
this.cbx_edgeSelect.Text = "all";
|
||||
//
|
||||
// txbLog
|
||||
//
|
||||
this.txbLog.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.txbLog.Location = new System.Drawing.Point(0, 487);
|
||||
this.txbLog.Name = "txbLog";
|
||||
this.txbLog.ReadOnly = true;
|
||||
this.txbLog.Size = new System.Drawing.Size(1129, 21);
|
||||
this.txbLog.TabIndex = 274;
|
||||
//
|
||||
// tbx_Sigma
|
||||
//
|
||||
this.tbx_Sigma.Font = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.tbx_Sigma.Location = new System.Drawing.Point(126, 344);
|
||||
this.tbx_Sigma.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.tbx_Sigma.Name = "tbx_Sigma";
|
||||
this.tbx_Sigma.Size = new System.Drawing.Size(92, 26);
|
||||
this.tbx_Sigma.TabIndex = 309;
|
||||
//
|
||||
// label15
|
||||
//
|
||||
this.label15.AutoSize = true;
|
||||
this.label15.Font = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.label15.Location = new System.Drawing.Point(36, 347);
|
||||
this.label15.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
|
||||
this.label15.Name = "label15";
|
||||
this.label15.Size = new System.Drawing.Size(54, 20);
|
||||
this.label15.TabIndex = 310;
|
||||
this.label15.Text = "Sigma:";
|
||||
//
|
||||
// groupBox3
|
||||
//
|
||||
this.groupBox3.Controls.Add(this.checkBox2);
|
||||
this.groupBox3.Controls.Add(this.checkBox1);
|
||||
this.groupBox3.Location = new System.Drawing.Point(296, 200);
|
||||
this.groupBox3.Name = "groupBox3";
|
||||
this.groupBox3.Size = new System.Drawing.Size(213, 96);
|
||||
this.groupBox3.TabIndex = 319;
|
||||
this.groupBox3.TabStop = false;
|
||||
this.groupBox3.Text = "显示";
|
||||
//
|
||||
// checkBox1
|
||||
//
|
||||
this.checkBox1.AutoSize = true;
|
||||
this.checkBox1.Location = new System.Drawing.Point(29, 29);
|
||||
this.checkBox1.Name = "checkBox1";
|
||||
this.checkBox1.Size = new System.Drawing.Size(108, 16);
|
||||
this.checkBox1.TabIndex = 0;
|
||||
this.checkBox1.Text = "结果显示矩形框";
|
||||
this.checkBox1.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// checkBox2
|
||||
//
|
||||
this.checkBox2.AutoSize = true;
|
||||
this.checkBox2.Location = new System.Drawing.Point(29, 60);
|
||||
this.checkBox2.Name = "checkBox2";
|
||||
this.checkBox2.Size = new System.Drawing.Size(96, 16);
|
||||
this.checkBox2.TabIndex = 0;
|
||||
this.checkBox2.Text = "结果显示交点";
|
||||
this.checkBox2.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// tbx_caliperLength2
|
||||
//
|
||||
this.tbx_caliperLength2.Font = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.tbx_caliperLength2.Location = new System.Drawing.Point(124, 277);
|
||||
this.tbx_caliperLength2.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.tbx_caliperLength2.Name = "tbx_caliperLength2";
|
||||
this.tbx_caliperLength2.Size = new System.Drawing.Size(92, 26);
|
||||
this.tbx_caliperLength2.TabIndex = 301;
|
||||
//
|
||||
// label16
|
||||
//
|
||||
this.label16.AutoSize = true;
|
||||
this.label16.Font = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.label16.Location = new System.Drawing.Point(34, 280);
|
||||
this.label16.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
|
||||
this.label16.Name = "label16";
|
||||
this.label16.Size = new System.Drawing.Size(65, 20);
|
||||
this.label16.TabIndex = 302;
|
||||
this.label16.Text = "卡尺宽:";
|
||||
//
|
||||
// FormFindLine
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(1127, 508);
|
||||
this.Controls.Add(this.txbLog);
|
||||
this.Controls.Add(this.splitContainer1);
|
||||
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
|
||||
this.Name = "FormFindLine";
|
||||
this.Text = "找线工具";
|
||||
this.Load += new System.EventHandler(this.FormFindLine_Load);
|
||||
this.splitContainer1.Panel1.ResumeLayout(false);
|
||||
this.splitContainer1.Panel2.ResumeLayout(false);
|
||||
this.splitContainer1.Panel2.PerformLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit();
|
||||
this.splitContainer1.ResumeLayout(false);
|
||||
this.groupBox1.ResumeLayout(false);
|
||||
this.groupBox1.PerformLayout();
|
||||
this.groupBox2.ResumeLayout(false);
|
||||
this.groupBox2.PerformLayout();
|
||||
this.groupBox3.ResumeLayout(false);
|
||||
this.groupBox3.PerformLayout();
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.SplitContainer splitContainer1;
|
||||
private System.Windows.Forms.Panel panel1;
|
||||
private System.Windows.Forms.Label label6;
|
||||
public System.Windows.Forms.TextBox tbx_expectLineEndRow;
|
||||
public System.Windows.Forms.TextBox tbx_expectLineStartCol;
|
||||
private System.Windows.Forms.GroupBox groupBox2;
|
||||
public System.Windows.Forms.TextBox tbx_resultEndCol;
|
||||
private System.Windows.Forms.Label label8;
|
||||
public System.Windows.Forms.TextBox tbx_resultStartRow;
|
||||
public System.Windows.Forms.TextBox tbx_resultStartCol;
|
||||
public System.Windows.Forms.TextBox tbx_resultEndRow;
|
||||
private System.Windows.Forms.Label label7;
|
||||
private System.Windows.Forms.Label label10;
|
||||
private System.Windows.Forms.Label label9;
|
||||
private System.Windows.Forms.Label label3;
|
||||
public System.Windows.Forms.TextBox tbx_expectLineStartRow;
|
||||
public System.Windows.Forms.TextBox tbx_minScore;
|
||||
private System.Windows.Forms.Label label2;
|
||||
public System.Windows.Forms.TextBox tbx_expectLineEndCol;
|
||||
private System.Windows.Forms.Label label4;
|
||||
private System.Windows.Forms.Label label1;
|
||||
private System.Windows.Forms.Label label5;
|
||||
private System.Windows.Forms.Label label14;
|
||||
private System.Windows.Forms.Label label13;
|
||||
private System.Windows.Forms.Label label12;
|
||||
private System.Windows.Forms.Label label11;
|
||||
public System.Windows.Forms.TextBox tbx_caliperLength;
|
||||
public System.Windows.Forms.TextBox tbx_threshold;
|
||||
public System.Windows.Forms.TextBox tbx_caliperNum;
|
||||
public System.Windows.Forms.ComboBox cbx_polarity;
|
||||
public System.Windows.Forms.Button btn_runFindLineTool;
|
||||
private System.Windows.Forms.Button btn_moveCliperRegion;
|
||||
public System.Windows.Forms.ComboBox cbx_edgeSelect;
|
||||
public System.Windows.Forms.TextBox txbLog;
|
||||
private System.Windows.Forms.GroupBox groupBox1;
|
||||
private System.Windows.Forms.Label label15;
|
||||
public System.Windows.Forms.TextBox tbx_Sigma;
|
||||
private System.Windows.Forms.GroupBox groupBox3;
|
||||
private System.Windows.Forms.CheckBox checkBox2;
|
||||
private System.Windows.Forms.CheckBox checkBox1;
|
||||
private System.Windows.Forms.Label label16;
|
||||
public System.Windows.Forms.TextBox tbx_caliperLength2;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,170 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
using CommonMethods;
|
||||
using HalconDotNet;
|
||||
using HalconWindow.HalconWindow;
|
||||
|
||||
namespace FindLineTool
|
||||
{
|
||||
public partial class FormFindLine : Form
|
||||
{
|
||||
public FindLine myFindLine = null;
|
||||
public IToolInfo myToolInfo = null;
|
||||
public HWindow_Final myHwindow = new HWindow_Final();
|
||||
/// <summary>
|
||||
/// 窗体对象实例
|
||||
/// </summary>
|
||||
private static FormFindLine _instance;
|
||||
public static FormFindLine Instance
|
||||
{
|
||||
get
|
||||
{
|
||||
lock (_instance)
|
||||
{
|
||||
if (_instance == null)
|
||||
{
|
||||
object line = new object();
|
||||
_instance = new FormFindLine(ref line);
|
||||
}
|
||||
return _instance;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public FormFindLine(ref object findLine)
|
||||
{
|
||||
InitializeComponent();
|
||||
_instance = this;
|
||||
myToolInfo = (IToolInfo)findLine;
|
||||
myFindLine = (FindLine)myToolInfo.tool;
|
||||
myFindLine.inputImage = ComGlobalParams.inputImageGlobal; // 暂时直接将图像传递给该工具
|
||||
myFindLine.DispImage();
|
||||
|
||||
}
|
||||
|
||||
private void FormFindLine_Load(object sender, EventArgs e)
|
||||
{
|
||||
this.panel1.Controls.Add(myHwindow);
|
||||
myHwindow.Dock = DockStyle.Fill;
|
||||
InitTool();
|
||||
}
|
||||
|
||||
private void btn_moveCliperRegion_Click(object sender, EventArgs e)
|
||||
{
|
||||
myFindLine.DrawExpectLine(myHwindow);
|
||||
}
|
||||
|
||||
public void TextBoxMessageDisp(string mes, Color setColor)
|
||||
{
|
||||
txbLog.BackColor = setColor;
|
||||
txbLog.Text = mes;
|
||||
txbLog.Font = new Font("微软雅黑", 10, FontStyle.Bold);
|
||||
CommonMethods.CommonMethods.Delay(2000);
|
||||
txbLog.BackColor = Color.White;
|
||||
}
|
||||
|
||||
private void btn_runFindLineTool_Click(object sender, EventArgs e)
|
||||
{
|
||||
// 更改界面中参数,实时更新类中参数
|
||||
myFindLine.expectLineStartRow = Convert.ToDouble(tbx_expectLineStartRow.Text.Trim());
|
||||
myFindLine.expectLineStartCol = Convert.ToDouble(tbx_expectLineStartCol.Text.Trim());
|
||||
myFindLine.expectLineEndRow = Convert.ToDouble(tbx_expectLineEndRow.Text.Trim());
|
||||
myFindLine.expectLineEndCol = Convert.ToDouble(tbx_expectLineEndCol.Text.Trim());
|
||||
// 运行参数
|
||||
myFindLine.minScore = Convert.ToDouble(tbx_minScore.Text.Trim());
|
||||
myFindLine.cliperNum = Convert.ToInt16(tbx_caliperNum.Text.Trim());
|
||||
myFindLine.threshold = Convert.ToInt16(tbx_threshold.Text.Trim());
|
||||
myFindLine.length = Convert.ToInt16(tbx_caliperLength.Text.Trim());
|
||||
myFindLine.weidth = Convert.ToInt16(tbx_caliperLength2.Text.Trim());
|
||||
myFindLine.polarity = cbx_polarity.SelectedItem.ToString() == "由明到暗" ? "negative":"positive";
|
||||
myFindLine.edgeSelect = cbx_edgeSelect.SelectedItem.ToString();
|
||||
myFindLine.sigma = Convert.ToDouble(tbx_Sigma.Text.Trim());
|
||||
// Run
|
||||
myFindLine.Run();
|
||||
}
|
||||
|
||||
public void InitTool()
|
||||
{
|
||||
this.Text = myToolInfo.toolName;
|
||||
btn_runFindLineTool.Focus();
|
||||
Application.DoEvents();
|
||||
|
||||
//myFindLine.Run(); //运行一下,使卡尺显示出来
|
||||
|
||||
tbx_expectLineStartRow.Text = myFindLine.expectLineStartRow.ToString();
|
||||
tbx_expectLineStartCol.Text = myFindLine.expectLineStartCol.ToString();
|
||||
tbx_expectLineEndRow.Text = myFindLine.expectLineEndRow.ToString();
|
||||
tbx_expectLineEndCol.Text = myFindLine.expectLineEndCol.ToString();
|
||||
cbx_edgeSelect.Text = myFindLine.edgeSelect;
|
||||
tbx_minScore.Text = myFindLine.minScore.ToString();
|
||||
cbx_polarity.Text = myFindLine.polarity == "positive" ? "由暗到明" : "由明到暗";
|
||||
tbx_caliperNum.Text = myFindLine.cliperNum.ToString();
|
||||
tbx_caliperLength.Text = myFindLine.length.ToString();
|
||||
tbx_threshold.Text = myFindLine.threshold.ToString();
|
||||
tbx_Sigma.Text = myFindLine.sigma.ToString();
|
||||
tbx_caliperLength2.Text = myFindLine.weidth.ToString();
|
||||
}
|
||||
|
||||
#region 输入检查
|
||||
private void tbx_expectLineStartRow_TextChanged(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
myFindLine.expectLineStartRow = Convert.ToDouble(tbx_expectLineStartRow.Text.Trim());
|
||||
}
|
||||
catch
|
||||
{
|
||||
TextBoxMessageDisp("输入了非法字符,已自动替换为默认值:200", Color.Red);
|
||||
tbx_expectLineStartRow.Text = "200";
|
||||
}
|
||||
}
|
||||
|
||||
private void tbx_expectLineStartCol_TextChanged(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
myFindLine.expectLineStartCol = Convert.ToDouble(tbx_expectLineStartCol.Text.Trim());
|
||||
}
|
||||
catch
|
||||
{
|
||||
TextBoxMessageDisp("输入了非法字符,已自动替换为默认值:200", Color.Red);
|
||||
tbx_expectLineStartCol.Text = "200";
|
||||
}
|
||||
}
|
||||
|
||||
private void tbx_expectLineEndRow_TextChanged(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
myFindLine.expectLineEndRow = Convert.ToDouble(tbx_expectLineEndRow.Text.Trim());
|
||||
}
|
||||
catch
|
||||
{
|
||||
TextBoxMessageDisp("输入了非法字符,已自动替换为默认值:200", Color.Red);
|
||||
tbx_expectLineEndRow.Text = "200";
|
||||
}
|
||||
}
|
||||
|
||||
private void tbx_expectLineEndCol_TextChanged(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
myFindLine.expectLineEndCol = Convert.ToDouble(tbx_expectLineEndCol.Text.Trim());
|
||||
}
|
||||
catch
|
||||
{
|
||||
TextBoxMessageDisp("输入了非法字符,已自动替换为默认值:600", Color.Red);
|
||||
tbx_expectLineEndCol.Text = "600";
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,205 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
AAABAAEAIyAAAAEAIACoEgAAFgAAACgAAAAjAAAAQAAAAAEAIAAAAAAAgBEAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAGyU0ZFdeafFscnz/bHJ8/2xyfP9scnz/bHJ8/2xyfP9scnz/bHJ8/2xyfP9scnz/bHJ8/2xy
|
||||
fP9scnz/bHJ8/2xyfP9scnz/bHJ8/2xyfP9scnz/bHJ8/2xyfP9scnz/bHJ8/2xyfP9scnz/bHJ8/2xy
|
||||
fP9scnz/bHJ8/1dfavUcJjRsAAAAABkjMgZbYWnz+fHY//nv0f/579H/+e/R//nv0f/579H/+e/R//nv
|
||||
0f/579H/+e/R//nv0f/579H/+e/R//nv0f/579H/+e/R//nv0f/579H/+e/R//nv0f/579H/+e/R//nv
|
||||
0f/579H/+e/R//nv0f/579H/+e/R//nv0f/579H/+vHX/19lbPcZIzIIGSQzCnBvZP/p2qj/QH6T/y6H
|
||||
q/8th6v/Loer/2aLjv/15K7/9eSu//Tkrf/15K7/9eSu//Xjrf/15K7/9eSu//Xjrv/15K7/9eSt//Tj
|
||||
rf/1463/9OSu//Tkrv/15K7/9OOt//Tjrf/15K7/9eSu//Tkrv/1467/9eSu//Tkrf/0467/cnJl/xki
|
||||
Mg4ZJDMKcG9j/+fYp/9aiJb/Wpqy/1qasv9amrL/dpGQ//Xkrv/1467/9eSt//Xjrv/15K7/9eSt//Xk
|
||||
rv/05K7/9eSt//Xkrv/1463/9OOt//Xkrv/05K3/9OOt//Xkrv/0463/9eOt//Xkrv/15K7/9OSu//Xj
|
||||
rf/15K7/9OOt//Pjrf9xcGT/GSIyDhkkMwpwb2P/9OOt//Xkrv/15K7/9OOt//Tkrv/1467/9eSu//Xk
|
||||
rv/05K3/9eSu//Tkrv/1463/9eSu//Tkrv/0463/9eSu//Tjrf/05K7/9eOu//Tkrf/0467/9eSu//Tj
|
||||
rf/15K7/9eSu//Xjrf/05K7/9eSu//Xkrv/0463/cnJk/3FwZP8ZIjIOGSQzCnBvY//1463/9OSu//Xk
|
||||
rv/15K3/9OSt//Tkrv/15K7/9eSu//Xkrf/15K7/9eSu//Xkrf/1467/9eSt//Xkrv/15K3/9eOt//Tk
|
||||
rf/15K7/9OSt//Tkrv/15K7/9OOt//Tjrf/15K7/9eOu//Tkrv/1463/9eSu//Tjrf9qamD/cXBk/xki
|
||||
Mg4ZJDMKcG9j//Tjrf/15K7/9eOu//Tjrf/05K3/9eSu//Xkrv/15K7/9OSt//Xkrv/15K7/9eOt//Xk
|
||||
rv/15K7/9eOu//Xkrv/15K3/9OOt//Xjrf/05K7/9OSu//Xkrv/0463/9OOt//Xkrv/15K7/9OSu//Xj
|
||||
rv/15K7/9OSt/2pqYP9xcGT/GSIyDhkkMwpwb2P/9OOt//Xkrv/15K7/9eSt//Tjrf/15K7/9eSu//Xj
|
||||
rv/15K3/9eOu//Xkrv/15K3/9eSu//Tkrv/15K3/9eSu//Xjrf/0463/9eSu//Tkrf/0463/9eSu//Tj
|
||||
rf/1463/9eSu//Xkrv/05K7/9eOt//Xkrv/0463/vbOP/3FwZP8ZIjIOGSQzCnBvY//0463/9eSu//Xk
|
||||
rv/0463/9OSu//Xjrv/15K7/9eSu//Tkrf/15K7/9OSu//Xjrf/15K7/9OSu//Tjrf/15K7/9OOt//Tk
|
||||
rv/1467/9OSt//Tjrv/15K7/9OOt//Xkrv/15K7/9eOt//Tkrv/15K7/9eSu//Tjrf92dGb/cXBk/xki
|
||||
Mg4ZJDMKcG9j//Xjrf/05K7/9eSu//Xkrf/05K3/9OSu//Xkrv/15K7/9eSt//Xkrv/15K7/9eSt//Xj
|
||||
rv/15K3/9eSu//Xkrf/1463/9OSt//Xkrv/05K3/9OSu//Xkrv/0463/9OOt//Xkrv/1467/9OSu//Xj
|
||||
rf/15K7/9OOt/8/CmP9xcGT/GSIyDhkkMwpwb2P/9OOt//Xkrv/1467/9OOt//Tkrf/15K7/9eSu//Xk
|
||||
rv/05K3/9eSu//Xkrv/1463/8+Ks/5CMdf90c2b/dHNm/3RzZv+Gg3D/796q//Tkrv/05K7/9eSu//Tj
|
||||
rf/0463/9eSu//Xkrv/05K7/9eOu//Xkrv/05K3/9OOu/3FwZP8ZIjIOGSQzCnBvY//0463/9eSu//Xk
|
||||
rv/15K3/9OOt//Xkrv/15K7/9eOu//Xkrf/1467/9eSu//Xkrf/VyJz/S0KD/4lp6P+Jaej/iWno/1hL
|
||||
mf/EuZL/9OSt//Tjrf/15K7/9OOt//Xjrf/15K7/9eSu//Tkrv/1463/9eSu//Tjrf/05K7/cXBk/xki
|
||||
Mg4ZJDMKcG9j//Tjrf/15K7/9eSu//Tjrf/05K7/9eOu//Xkrv/15K7/9OSt//Xkrv/05K7/9eOt/9DE
|
||||
mf9TSpD/lnn+/5R3+/+WeP7/Y1Wq/8K3kf/05K3/9OOu//Xkrv/0463/9eSu//Xkrv/1463/9OSu//Xk
|
||||
rv/15K7/9OOt//Tkrv9xcGT/GSIyDhkkMwpwb2L/9OOs//TjrP/046z/9OOs//TjrP/046z/9OOs//Tj
|
||||
rP/046z/9OOs//TjrP/046z/0MOX/1NKkP+Xef//Mk16/4tx7P9jVar/wreQ//TjrP/046z/9OOs//Tj
|
||||
rP/046z/9OOs//TjrP/046z/9OOs//TjrP/046z/9OOs/3FwY/8ZIjIOGSMyPlVVQ/+woVv/sKFb/7Ch
|
||||
W/+woVv/sKFb/7ChW/+woVv/sKFb/7ChW/+woVv/sKFb/7ChW/+XjFT/U0qQ/5d5/v8oVHv/h27m/2NV
|
||||
qv+NhFL/sKFb/7ChW/+woVv/sKFb/7ChW/+woVv/sKFb/7ChW/+woVv/sKFb/7ChW/+woVv/WVlE/xkj
|
||||
MkJCRTz/iH9N/4h/Tf+If03/iH9N/4h/Tf+If03/iH9N/4h/Tf+If03/iH9N/4h/Tf+If03/iH9N/3Vw
|
||||
Sf9TSpD/cGbK/x6Drv9iY7z/Y1Wq/25qR/+If03/iH9N/4h/Tf+If03/iH9N/4h/Tf+If03/iH9N/4h/
|
||||
Tf+If03/iH9N/4h/Tf+If03/REc9/2dnWf/ZyY//wLOC/8K1g//u3Jv/w7aD/8u9h//w3p3/8N6d//De
|
||||
nf/w3p3/8N6d//Denf/w3p3/zL+L/1NKkP9Uc6//K8X3/05/tf9jVar/v7OE//Denf/w3p3/8N6d//De
|
||||
nf/w3p3/8N6d//Denf/w3p3/8N6d//Denf/w3p3/8N6d//Denf9paFn/aGhf/8W6k/+blXv/npd9/+7e
|
||||
qv+el33/rKSF//Tkrv/15K7/9eSu//Xkrf/15K7/9eSu//Xkrf/QxJn/U0qQ/4Jr2v+Hf7j/gWzW/2NV
|
||||
qv/Ct5H/9OSt//Tkrv/15K7/9OOt//Tjrf/15K7/9eOu//Tkrv/1463/9eSu//Tjrf/15K7/9OOt/2lp
|
||||
X/9oaF//9eSu//Tjrf/15K7/9eOu//Tjrf/05K3/9eSu//Xkrv/15K7/9OSt//Xkrv/15K7/9eOt/9DE
|
||||
mf9VTZH/mHv+/5h7//+Ye///ZVir/8K3kf/05K7/9OSu//Xkrv/0463/9OOt//Xkrv/15K7/9OSu//Xj
|
||||
rv/15K7/9OSt//Tjrv/15K7/aWlf/2hoX//15K7/9OOt//Xkrv/15K7/9eSt//Tjrf/15K7/9eSu//Xj
|
||||
rv/15K3/9eOu//Xkrv/15K3/6Nmn/1RZX/9pbnz/aW58/2lufP9SWGH/282f//Tkrf/0463/9eSu//Tj
|
||||
rf/1463/9eSu//Xkrv/05K7/9eOt//Xkrv/0463/9OSu//Tjrv9paV//aGhf//Xkrv/0463/9eSu//Xk
|
||||
rv/0463/9OSu//Xjrv/15K7/9eSu//Tkrf/15K7/9OSu//Xjrf/15K7/9OSu//Tjrf/15K7/9OOt//Tk
|
||||
rv/1467/9OSt//Tjrv/15K7/9OOt//Xkrv/15K7/9eOt//Tkrv/15K7/9eSu//Tjrf/05K7/9OSu/2lp
|
||||
X/9oaF//9OSu//Xjrf/05K7/9eSu//Xkrf/05K3/9OSu//Xkrv/15K7/9eSt//Xkrv/15K7/9eSt//Xj
|
||||
rv/15K3/9eSu//Xkrf/1463/9OSt//Xkrv/05K3/9OSu//Xkrv/0463/9OOt//Xkrv/1467/9OSu//Xj
|
||||
rf/15K7/9OOt//Xkrv/0463/aWlf/2lqYv/15K7/9OOt//Xkrv/1467/9OOt//Tkrf/15K7/9eSu//Xk
|
||||
rv/05K3/9eSu//Xkrv/1463/9eSu//Xkrv/1467/9eSu//Xkrf/0463/9eOt//Tkrv/05K7/9eSu//Tj
|
||||
rf/0463/9eSu//Xkrv/05K7/9eOu//Xkrv/05K3/9OOu//Xkrv9rbGT/Q0tX4fDs3v/79eH/+/Xh//v1
|
||||
4f/79eH/+/Xh//v14f/79eH/+/Xh//v14f/79eH/+/Xh//v14f/79eH/+/Xh//v14f/79eH/+/Xh//v1
|
||||
4f/79eH/+/Xh//v14f/79eH/+/Xh//v14f/79eH/+/Xh//v14f/79eH/+/Xh//v14f/79eH/8+7g/0hP
|
||||
W+UZIzM0KjNBtz9IVMk/SFTJP0hUyT9IVMk/SFTJP0hUyTlFU/M3WXL/OkNQ6T9HVMs/R1TLP0dUyz9H
|
||||
VMs/R1TLP0dUyz9HVMs/R1TLP0dUyz9HVMs/R1TLP0dUyz9HVMs6Q0/pN1lx/zhFVPU/SFTJP0hUyT9I
|
||||
VMk/SFTJP0hUyT9IVMkqM0G5GSMzNgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGjRIyRu3
|
||||
7f8aJDOZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABoj
|
||||
M5cbseb/Gj1TzQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAaNEjJG7nu/xokM5kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAGSQzlxuz5v8aPVPNAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABo0R8kbue7/GiQzmwAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaJDOXG7Xo/xo7UM0AAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGig4rR25
|
||||
7P8aOU7XGiQzBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGSMyBho2
|
||||
Ss8duu7/Gio7swAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAZJDNcOo+v/xuTwP8ZMUbBGSMyhRokM4MZIzKDGiMzgxokM4MaJDODGiQzgxoj
|
||||
M4MZIzODGSQzgxkjMoUZMEW/G5C7/zyUtf8aJDNiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABkjMgQtN0W7cbHI/0zC7v8xqNj/MKbX/zCm
|
||||
1/8wptf/MKbX/zCm1/8wptf/MKbX/zCm1/8wptf/MafX/0vB7v9xs8v/LzpHvxkjMgYAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABkk
|
||||
MgoeKDeHUlll5Wlxe/1qcnz/anJ8/2pyfP9qcnz/anJ8/2pyfP9qcnz/anJ8/2pyfP9qcXv9U1pm5x8o
|
||||
N4kZIzIKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAGAAAACAAAAAIAAAAIAA
|
||||
AAAgAAAAgAAAACAAAACAAAAAIAAAAIAAAAAgAAAAgAAAACAAAACAAAAAIAAAAIAAAAAgAAAAgAAAACAA
|
||||
AACAAAAAIAAAAIAAAAAgAAAAgAAAACAAAACAAAAAIAAAAIAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAACAA
|
||||
AAD/H/8f4AAAAP8f/x/gAAAA/x//H+AAAAD/H/8f4AAAAP+AAD/gAAAA/4AAP+AAAAD/wAB/4AAAAA==
|
||||
</value>
|
||||
</data>
|
||||
</root>
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,13 @@
|
||||
F:\VSCode\VisionEditTest\FindLine\bin\Debug\FindLineTool.dll
|
||||
F:\VSCode\VisionEditTest\FindLine\bin\Debug\FindLineTool.pdb
|
||||
F:\VSCode\VisionEditTest\FindLine\bin\Debug\DataStruct.dll
|
||||
F:\VSCode\VisionEditTest\FindLine\bin\Debug\halcondotnet.dll
|
||||
F:\VSCode\VisionEditTest\FindLine\bin\Debug\HalconWindow.exe
|
||||
F:\VSCode\VisionEditTest\FindLine\bin\Debug\DataStruct.pdb
|
||||
F:\VSCode\VisionEditTest\FindLine\bin\Debug\HalconWindow.pdb
|
||||
F:\VSCode\VisionEditTest\FindLine\bin\Debug\halcondotnet.xml
|
||||
F:\VSCode\VisionEditTest\FindLine\obj\Debug\FindLine.csprojResolveAssemblyReference.cache
|
||||
F:\VSCode\VisionEditTest\FindLine\obj\Debug\FindLine.FormFindLine.resources
|
||||
F:\VSCode\VisionEditTest\FindLine\obj\Debug\FindLine.csproj.GenerateResource.Cache
|
||||
F:\VSCode\VisionEditTest\FindLine\obj\Debug\FindLineTool.dll
|
||||
F:\VSCode\VisionEditTest\FindLine\obj\Debug\FindLineTool.pdb
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,17 @@
|
||||
F:\VSCode\VisionEditTest\FindLine\bin\Debug\FindLineTool.dll
|
||||
F:\VSCode\VisionEditTest\FindLine\bin\Debug\FindLineTool.pdb
|
||||
F:\VSCode\VisionEditTest\FindLine\bin\Debug\CommonMethods.dll
|
||||
F:\VSCode\VisionEditTest\FindLine\bin\Debug\DataStruct.dll
|
||||
F:\VSCode\VisionEditTest\FindLine\bin\Debug\halcondotnet.dll
|
||||
F:\VSCode\VisionEditTest\FindLine\bin\Debug\HalconWindow.exe
|
||||
F:\VSCode\VisionEditTest\FindLine\bin\Debug\ToolBase.dll
|
||||
F:\VSCode\VisionEditTest\FindLine\bin\Debug\CommonMethods.pdb
|
||||
F:\VSCode\VisionEditTest\FindLine\bin\Debug\DataStruct.pdb
|
||||
F:\VSCode\VisionEditTest\FindLine\bin\Debug\HalconWindow.pdb
|
||||
F:\VSCode\VisionEditTest\FindLine\bin\Debug\ToolBase.pdb
|
||||
F:\VSCode\VisionEditTest\FindLine\bin\Debug\halcondotnet.xml
|
||||
F:\VSCode\VisionEditTest\FindLine\obj\Debug\FindLineTool.csprojResolveAssemblyReference.cache
|
||||
F:\VSCode\VisionEditTest\FindLine\obj\Debug\FindLineTool.FormFindLine.resources
|
||||
F:\VSCode\VisionEditTest\FindLine\obj\Debug\FindLineTool.csproj.GenerateResource.Cache
|
||||
F:\VSCode\VisionEditTest\FindLine\obj\Debug\FindLineTool.dll
|
||||
F:\VSCode\VisionEditTest\FindLine\obj\Debug\FindLineTool.pdb
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user