增加查找线工具

This commit is contained in:
liu.wenjie
2019-08-04 21:51:40 +08:00
committed by liu.wenjie
parent 61de0d1236
commit 9d8944dcc3
256 changed files with 719371 additions and 778 deletions

368
FindLine/FindLine.cs Normal file
View File

@@ -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);
}
}
}
}

View File

@@ -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>

619
FindLine/FormFindLine.Designer.cs generated Normal file
View File

@@ -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;
}
}

170
FindLine/FormFindLine.cs Normal file
View File

@@ -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
}
}

205
FindLine/FormFindLine.resx Normal file
View File

@@ -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

View File

@@ -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.

View File

@@ -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.