mirror of
https://github.com/eggplantlwj/VisionEdit.git
synced 2026-06-06 20:38:17 +08:00
增加查找线工具
This commit is contained in:
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,27 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using HalconDotNet;
|
||||
|
||||
namespace CommonMethods
|
||||
{
|
||||
public class ComGlobalParams
|
||||
{
|
||||
|
||||
public static HObject inputImageGlobal
|
||||
{
|
||||
get
|
||||
{
|
||||
HObject inputImage = new HObject();
|
||||
HOperatorSet.ReadImage(out inputImage, @"G:\Outer_HB.bmp");
|
||||
return inputImage;
|
||||
}
|
||||
set
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,63 @@
|
||||
<?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>{1C8D0DDC-2086-48A9-9586-F2B643E2FC54}</ProjectGuid>
|
||||
<OutputType>Library</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>CommonMethods</RootNamespace>
|
||||
<AssemblyName>CommonMethods</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="ComGlobalParams.cs" />
|
||||
<Compile Include="CommonMethods.cs" />
|
||||
<Compile Include="Interface\CommonStruct.cs" />
|
||||
<Compile Include="Interface\IToolInfo.cs" />
|
||||
<Compile Include="Interface\IVisionJobInterface.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
</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>
|
||||
@@ -0,0 +1,192 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
using HalconDotNet;
|
||||
|
||||
namespace CommonMethods
|
||||
{
|
||||
public class CommonMethods
|
||||
{
|
||||
/// <summary>
|
||||
/// 延时操作
|
||||
/// </summary>
|
||||
/// <param name="mm"></param>
|
||||
public static void Delay(int mm)
|
||||
{
|
||||
DateTime delay = DateTime.Now.AddMilliseconds((double)mm);
|
||||
while (delay > DateTime.Now)
|
||||
{
|
||||
Application.DoEvents();
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// Creates an arrow shaped XLD contour.
|
||||
/// </summary>
|
||||
/// <param name="ho_Arrow">生成的箭头</param>
|
||||
/// <param name="hv_Row1">箭头起点Row</param>
|
||||
/// <param name="hv_Column1">箭头起点Column</param>
|
||||
/// <param name="hv_Row2">箭头终点Row</param>
|
||||
/// <param name="hv_Column2">箭头终点Column</param>
|
||||
/// <param name="hv_HeadLength">头长度</param>
|
||||
/// <param name="hv_HeadWidth">头宽度</param>
|
||||
public static void gen_arrow_contour_xld(out HObject ho_Arrow, HTuple hv_Row1, HTuple hv_Column1,
|
||||
HTuple hv_Row2, HTuple hv_Column2, HTuple hv_HeadLength, HTuple hv_HeadWidth)
|
||||
{
|
||||
|
||||
|
||||
|
||||
// Stack for temporary objects
|
||||
HObject[] OTemp = new HObject[20];
|
||||
|
||||
// Local iconic variables
|
||||
|
||||
HObject ho_TempArrow = null;
|
||||
|
||||
// Local control variables
|
||||
|
||||
HTuple hv_Length = new HTuple(), hv_ZeroLengthIndices = new HTuple();
|
||||
HTuple hv_DR = new HTuple(), hv_DC = new HTuple(), hv_HalfHeadWidth = new HTuple();
|
||||
HTuple hv_RowP1 = new HTuple(), hv_ColP1 = new HTuple();
|
||||
HTuple hv_RowP2 = new HTuple(), hv_ColP2 = new HTuple();
|
||||
HTuple hv_Index = new HTuple();
|
||||
// Initialize local and output iconic variables
|
||||
HOperatorSet.GenEmptyObj(out ho_Arrow);
|
||||
HOperatorSet.GenEmptyObj(out ho_TempArrow);
|
||||
//This procedure generates arrow shaped XLD contours,
|
||||
//pointing from (Row1, Column1) to (Row2, Column2).
|
||||
//If starting and end point are identical, a contour consisting
|
||||
//of a single point is returned.
|
||||
//
|
||||
//input parameteres:
|
||||
//Row1, Column1: Coordinates of the arrows' starting points
|
||||
//Row2, Column2: Coordinates of the arrows' end points
|
||||
//HeadLength, HeadWidth: Size of the arrow heads in pixels
|
||||
//
|
||||
//output parameter:
|
||||
//Arrow: The resulting XLD contour
|
||||
//
|
||||
//The input tuples Row1, Column1, Row2, and Column2 have to be of
|
||||
//the same length.
|
||||
//HeadLength and HeadWidth either have to be of the same length as
|
||||
//Row1, Column1, Row2, and Column2 or have to be a single element.
|
||||
//If one of the above restrictions is violated, an error will occur.
|
||||
//
|
||||
//
|
||||
//Init
|
||||
ho_Arrow.Dispose();
|
||||
HOperatorSet.GenEmptyObj(out ho_Arrow);
|
||||
//
|
||||
//Calculate the arrow length
|
||||
hv_Length.Dispose();
|
||||
HOperatorSet.DistancePp(hv_Row1, hv_Column1, hv_Row2, hv_Column2, out hv_Length);
|
||||
//
|
||||
//Mark arrows with identical start and end point
|
||||
//(set Length to -1 to avoid division-by-zero exception)
|
||||
hv_ZeroLengthIndices.Dispose();
|
||||
using (HDevDisposeHelper dh = new HDevDisposeHelper())
|
||||
{
|
||||
hv_ZeroLengthIndices = hv_Length.TupleFind(
|
||||
0);
|
||||
}
|
||||
if ((int)(new HTuple(hv_ZeroLengthIndices.TupleNotEqual(-1))) != 0)
|
||||
{
|
||||
if (hv_Length == null)
|
||||
hv_Length = new HTuple();
|
||||
hv_Length[hv_ZeroLengthIndices] = -1;
|
||||
}
|
||||
//
|
||||
//Calculate auxiliary variables.
|
||||
hv_DR.Dispose();
|
||||
using (HDevDisposeHelper dh = new HDevDisposeHelper())
|
||||
{
|
||||
hv_DR = (1.0 * (hv_Row2 - hv_Row1)) / hv_Length;
|
||||
}
|
||||
hv_DC.Dispose();
|
||||
using (HDevDisposeHelper dh = new HDevDisposeHelper())
|
||||
{
|
||||
hv_DC = (1.0 * (hv_Column2 - hv_Column1)) / hv_Length;
|
||||
}
|
||||
hv_HalfHeadWidth.Dispose();
|
||||
using (HDevDisposeHelper dh = new HDevDisposeHelper())
|
||||
{
|
||||
hv_HalfHeadWidth = hv_HeadWidth / 2.0;
|
||||
}
|
||||
//
|
||||
//Calculate end points of the arrow head.
|
||||
hv_RowP1.Dispose();
|
||||
using (HDevDisposeHelper dh = new HDevDisposeHelper())
|
||||
{
|
||||
hv_RowP1 = (hv_Row1 + ((hv_Length - hv_HeadLength) * hv_DR)) + (hv_HalfHeadWidth * hv_DC);
|
||||
}
|
||||
hv_ColP1.Dispose();
|
||||
using (HDevDisposeHelper dh = new HDevDisposeHelper())
|
||||
{
|
||||
hv_ColP1 = (hv_Column1 + ((hv_Length - hv_HeadLength) * hv_DC)) - (hv_HalfHeadWidth * hv_DR);
|
||||
}
|
||||
hv_RowP2.Dispose();
|
||||
using (HDevDisposeHelper dh = new HDevDisposeHelper())
|
||||
{
|
||||
hv_RowP2 = (hv_Row1 + ((hv_Length - hv_HeadLength) * hv_DR)) - (hv_HalfHeadWidth * hv_DC);
|
||||
}
|
||||
hv_ColP2.Dispose();
|
||||
using (HDevDisposeHelper dh = new HDevDisposeHelper())
|
||||
{
|
||||
hv_ColP2 = (hv_Column1 + ((hv_Length - hv_HeadLength) * hv_DC)) + (hv_HalfHeadWidth * hv_DR);
|
||||
}
|
||||
//
|
||||
//Finally create output XLD contour for each input point pair
|
||||
for (hv_Index = 0; (int)hv_Index <= (int)((new HTuple(hv_Length.TupleLength())) - 1); hv_Index = (int)hv_Index + 1)
|
||||
{
|
||||
if ((int)(new HTuple(((hv_Length.TupleSelect(hv_Index))).TupleEqual(-1))) != 0)
|
||||
{
|
||||
//Create_ single points for arrows with identical start and end point
|
||||
using (HDevDisposeHelper dh = new HDevDisposeHelper())
|
||||
{
|
||||
ho_TempArrow.Dispose();
|
||||
HOperatorSet.GenContourPolygonXld(out ho_TempArrow, hv_Row1.TupleSelect(hv_Index),
|
||||
hv_Column1.TupleSelect(hv_Index));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
//Create arrow contour
|
||||
using (HDevDisposeHelper dh = new HDevDisposeHelper())
|
||||
{
|
||||
ho_TempArrow.Dispose();
|
||||
HOperatorSet.GenContourPolygonXld(out ho_TempArrow, ((((((((((hv_Row1.TupleSelect(
|
||||
hv_Index))).TupleConcat(hv_Row2.TupleSelect(hv_Index)))).TupleConcat(
|
||||
hv_RowP1.TupleSelect(hv_Index)))).TupleConcat(hv_Row2.TupleSelect(hv_Index)))).TupleConcat(
|
||||
hv_RowP2.TupleSelect(hv_Index)))).TupleConcat(hv_Row2.TupleSelect(hv_Index)),
|
||||
((((((((((hv_Column1.TupleSelect(hv_Index))).TupleConcat(hv_Column2.TupleSelect(
|
||||
hv_Index)))).TupleConcat(hv_ColP1.TupleSelect(hv_Index)))).TupleConcat(
|
||||
hv_Column2.TupleSelect(hv_Index)))).TupleConcat(hv_ColP2.TupleSelect(
|
||||
hv_Index)))).TupleConcat(hv_Column2.TupleSelect(hv_Index)));
|
||||
}
|
||||
}
|
||||
{
|
||||
HObject ExpTmpOutVar_0;
|
||||
HOperatorSet.ConcatObj(ho_Arrow, ho_TempArrow, out ExpTmpOutVar_0);
|
||||
ho_Arrow.Dispose();
|
||||
ho_Arrow = ExpTmpOutVar_0;
|
||||
}
|
||||
}
|
||||
ho_TempArrow.Dispose();
|
||||
|
||||
hv_Length.Dispose();
|
||||
hv_ZeroLengthIndices.Dispose();
|
||||
hv_DR.Dispose();
|
||||
hv_DC.Dispose();
|
||||
hv_HalfHeadWidth.Dispose();
|
||||
hv_RowP1.Dispose();
|
||||
hv_ColP1.Dispose();
|
||||
hv_RowP2.Dispose();
|
||||
hv_ColP2.Dispose();
|
||||
hv_Index.Dispose();
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
Binary file not shown.
@@ -5,7 +5,7 @@ using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace VisionEdit
|
||||
namespace CommonMethods
|
||||
{
|
||||
public class IToolInfo
|
||||
{
|
||||
@@ -26,6 +26,14 @@ namespace VisionEdit
|
||||
/// </summary>
|
||||
public object tool { get; set; }
|
||||
/// <summary>
|
||||
/// 工具窗体
|
||||
/// </summary>
|
||||
public Form FormTool { get; set; }
|
||||
/// <summary>
|
||||
/// 工具窗体名
|
||||
/// </summary>
|
||||
public string FormToolName { get; set; }
|
||||
/// <summary>
|
||||
/// 工具描述信息
|
||||
/// </summary>
|
||||
public string toolTipInfo { get; set; }
|
||||
@@ -41,6 +49,10 @@ namespace VisionEdit
|
||||
/// 工具作用描述
|
||||
/// </summary>
|
||||
public string toolDescription { get; set; }
|
||||
/// <summary>
|
||||
/// 工具运行结果
|
||||
/// </summary>
|
||||
public ToolRunStatu toolRunStatu { get; set; }
|
||||
public IToolInfo()
|
||||
{
|
||||
enable = true;
|
||||
@@ -126,6 +138,4 @@ namespace VisionEdit
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
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
@@ -0,0 +1,7 @@
|
||||
F:\VSCode\VisionEditTest\CommonMethods\bin\Debug\CommonMethods.dll
|
||||
F:\VSCode\VisionEditTest\CommonMethods\bin\Debug\CommonMethods.pdb
|
||||
F:\VSCode\VisionEditTest\CommonMethods\bin\Debug\halcondotnet.dll
|
||||
F:\VSCode\VisionEditTest\CommonMethods\bin\Debug\halcondotnet.xml
|
||||
F:\VSCode\VisionEditTest\CommonMethods\obj\Debug\CommonMethods.dll
|
||||
F:\VSCode\VisionEditTest\CommonMethods\obj\Debug\CommonMethods.pdb
|
||||
F:\VSCode\VisionEditTest\CommonMethods\obj\Debug\CommonHelper.csprojResolveAssemblyReference.cache
|
||||
Binary file not shown.
@@ -0,0 +1,4 @@
|
||||
F:\VSCode\VisionEditTest\CommonMethods\bin\Debug\CommonMethods.dll
|
||||
F:\VSCode\VisionEditTest\CommonMethods\bin\Debug\CommonMethods.pdb
|
||||
F:\VSCode\VisionEditTest\CommonMethods\obj\Debug\CommonMethods.dll
|
||||
F:\VSCode\VisionEditTest\CommonMethods\obj\Debug\CommonMethods.pdb
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,92 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using HalconDotNet;
|
||||
|
||||
namespace DataStruct
|
||||
{
|
||||
public class DataStruct
|
||||
{
|
||||
/// <summary>
|
||||
/// XYU结果
|
||||
/// </summary>
|
||||
[Serializable]
|
||||
public class PosXYU
|
||||
{
|
||||
public double X;
|
||||
public double Y;
|
||||
public double U;
|
||||
/// <summary>
|
||||
/// 将XYU类型转化成格式化字符串
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
internal string ToFormatStr()
|
||||
{
|
||||
return (X >= 0 ? "+" + X.ToString("0000.000") : X.ToString("0000.000")) + "," + (Y >= 0 ? "+" + Y.ToString("0000.000") : Y.ToString("0000.000")) + "," + (U >= 0 ? "+" + U.ToString("0000.000") : U.ToString("0000.000"));
|
||||
}
|
||||
internal string ToShowTip()
|
||||
{
|
||||
return X.ToString() + " | " + Y.ToString() + " | " + U.ToString();
|
||||
}
|
||||
}
|
||||
|
||||
[Serializable]
|
||||
public class Line
|
||||
{
|
||||
public Point StartPoint;
|
||||
public Point EndPoint;
|
||||
internal string ToShowTip()
|
||||
{
|
||||
return StartPoint.Row.ToString() + " | " + StartPoint.Col.ToString() + " | " + EndPoint.Row.ToString() + " | " + EndPoint.Col.ToString();
|
||||
}
|
||||
private HTuple _angle;
|
||||
public double Angle
|
||||
{
|
||||
get
|
||||
{
|
||||
HOperatorSet.AngleLx(StartPoint.Row, StartPoint.Col, EndPoint.Row, EndPoint.Col, out _angle);
|
||||
return _angle;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[Serializable]
|
||||
public class Point
|
||||
{
|
||||
public Point() { }
|
||||
public Point(double x, double y)
|
||||
{
|
||||
this.Row = x;
|
||||
this.Col = y;
|
||||
}
|
||||
public double Row;
|
||||
public double Col;
|
||||
/// <summary>
|
||||
/// 重写 -
|
||||
/// </summary>
|
||||
/// <param name="p1">点1</param>
|
||||
/// <param name="p2">点2</param>
|
||||
/// <returns></returns>
|
||||
public static Point operator -(Point p1, Point p2)
|
||||
{
|
||||
return new Point(p1.Row - p2.Row, p1.Col - p2.Col);
|
||||
}
|
||||
/// <summary>
|
||||
/// 获得点矢量长度
|
||||
/// </summary>
|
||||
public double GetDistance
|
||||
{
|
||||
get
|
||||
{
|
||||
return Math.Sqrt(Row * Row + Col * Col);
|
||||
}
|
||||
}
|
||||
public string ToShowTip()
|
||||
{
|
||||
return Row.ToString() + " | " + Col.ToString();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,57 @@
|
||||
<?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>{DF3D4D4C-02DF-4F92-9FD4-0A861F64B0EF}</ProjectGuid>
|
||||
<OutputType>Library</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>DataStruct</RootNamespace>
|
||||
<AssemblyName>DataStruct</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.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="DataStruct.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
</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>
|
||||
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
@@ -0,0 +1,6 @@
|
||||
F:\VSCode\VisionEditTest\DataStruct\bin\Debug\DataStruct.dll
|
||||
F:\VSCode\VisionEditTest\DataStruct\bin\Debug\DataStruct.pdb
|
||||
F:\VSCode\VisionEditTest\DataStruct\bin\Debug\halcondotnet.dll
|
||||
F:\VSCode\VisionEditTest\DataStruct\bin\Debug\halcondotnet.xml
|
||||
F:\VSCode\VisionEditTest\DataStruct\obj\Debug\DataStruct.dll
|
||||
F:\VSCode\VisionEditTest\DataStruct\obj\Debug\DataStruct.pdb
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,106 @@
|
||||
using System;
|
||||
using HalconDotNet;
|
||||
using static DataStruct.DataStruct;
|
||||
|
||||
namespace FindCircle
|
||||
{
|
||||
[Serializable]
|
||||
public class FindClrcle
|
||||
{
|
||||
/// <summary>
|
||||
/// 输入位姿
|
||||
/// </summary>
|
||||
internal PosXYU inputPose = new PosXYU();
|
||||
/// <summary>
|
||||
/// 期望圆圆心行坐标
|
||||
/// </summary>
|
||||
internal HTuple expectCircleRow = 300;
|
||||
/// <summary>
|
||||
/// 期望圆圆心列坐标
|
||||
/// </summary>
|
||||
internal HTuple expectCircleCol = 300;
|
||||
/// <summary>
|
||||
/// 期望圆半径
|
||||
/// </summary>
|
||||
internal HTuple expectCircleRadius = 200;
|
||||
/// <summary>
|
||||
/// 查找到圆的圆心行坐标
|
||||
/// </summary>
|
||||
private double _resultCircleRow = 0;
|
||||
internal double ResultCircleRow
|
||||
{
|
||||
get
|
||||
{
|
||||
return Math.Round(_resultCircleRow, 3);
|
||||
}
|
||||
set { _resultCircleRow = value; }
|
||||
}
|
||||
/// <summary>
|
||||
/// 查找到的圆的圆心列坐标
|
||||
/// </summary>
|
||||
private double _resultCircleCol = 0;
|
||||
internal double ResultCircleCol
|
||||
{
|
||||
get
|
||||
{
|
||||
return Math.Round(_resultCircleCol, 3);
|
||||
}
|
||||
set { _resultCircleCol = value; }
|
||||
}
|
||||
/// <summary>
|
||||
/// 查找到的圆的半径
|
||||
/// </summary>
|
||||
private double resultCircleRadius = 0;
|
||||
internal double ResultCircleRadius
|
||||
{
|
||||
get
|
||||
{
|
||||
return Math.Round(resultCircleRadius, 3);
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// 起始角度
|
||||
/// </summary>
|
||||
internal double startAngle = 10;
|
||||
/// <summary>
|
||||
/// 结束角度
|
||||
/// </summary>
|
||||
internal double endAngle = 360;
|
||||
/// <summary>
|
||||
/// 运行工具时是否刷新输入图像
|
||||
/// </summary>
|
||||
internal bool updateImage = false;
|
||||
/// <summary>
|
||||
/// 圆环径向长度
|
||||
/// </summary>
|
||||
internal double ringRadiusLength = 80;
|
||||
/// <summary>
|
||||
/// 边阈值
|
||||
/// </summary>
|
||||
internal int threshold = 30;
|
||||
/// <summary>
|
||||
/// 卡尺
|
||||
/// </summary>
|
||||
internal HObject contours;
|
||||
/// <summary>
|
||||
/// 找边极性,从明到暗或从暗到明
|
||||
/// </summary>
|
||||
internal string polarity = "negative";
|
||||
/// <summary>
|
||||
/// 卡尺数量
|
||||
/// </summary>
|
||||
internal int cliperNum = 20;
|
||||
/// <summary>
|
||||
/// 输入图像
|
||||
/// </summary>
|
||||
internal HObject inputImage;
|
||||
/// <summary>
|
||||
/// 新的跟随姿态变化后的预期圆信息
|
||||
/// </summary>
|
||||
HTuple newExpecCircleRow = new HTuple(200), newExpectCircleCol = new HTuple(200), newExpectCircleRadius = new HTuple(200);
|
||||
/// <summary>
|
||||
/// 制作模板时的输入位姿
|
||||
/// </summary>
|
||||
internal PosXYU templatePose = new PosXYU();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,80 @@
|
||||
<?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>{3D2739DB-5618-49BF-BF5C-5CCCD6A55C64}</ProjectGuid>
|
||||
<OutputType>Library</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>FindCircleTool</RootNamespace>
|
||||
<AssemblyName>FindCircleTool</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="FindCircle.cs" />
|
||||
<Compile Include="FormFindCircle.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="FormFindCircle.Designer.cs">
|
||||
<DependentUpon>FormFindCircle.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<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>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="FormFindCircle.resx">
|
||||
<DependentUpon>FormFindCircle.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
</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
+712
@@ -0,0 +1,712 @@
|
||||
namespace FindCircle
|
||||
{
|
||||
partial class FormFindCircle
|
||||
{
|
||||
/// <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()
|
||||
{
|
||||
this.tbx_threshold = new System.Windows.Forms.TextBox();
|
||||
this.label12 = new System.Windows.Forms.Label();
|
||||
this.btn_subThreshold = new System.Windows.Forms.Button();
|
||||
this.tbx_thresholdSpan = new System.Windows.Forms.TextBox();
|
||||
this.btn_addThreshold = new System.Windows.Forms.Button();
|
||||
this.cbx_polarity = new System.Windows.Forms.ComboBox();
|
||||
this.btn_switchPolarity = new System.Windows.Forms.Button();
|
||||
this.tbx_cliperNum = new System.Windows.Forms.TextBox();
|
||||
this.label8 = new System.Windows.Forms.Label();
|
||||
this.btn_subCliperNum = new System.Windows.Forms.Button();
|
||||
this.label11 = new System.Windows.Forms.Label();
|
||||
this.tbx_cliperNumSpan = new System.Windows.Forms.TextBox();
|
||||
this.btn_addCliperNum = new System.Windows.Forms.Button();
|
||||
this.tbx_ringRadiusLength = new System.Windows.Forms.TextBox();
|
||||
this.tbx_endAngle = new System.Windows.Forms.TextBox();
|
||||
this.tbx_expectCircelRow = new System.Windows.Forms.TextBox();
|
||||
this.tbx_expectCircleCol = new System.Windows.Forms.TextBox();
|
||||
this.tbx_expectCircleradius = new System.Windows.Forms.TextBox();
|
||||
this.tbx_startAngle = new System.Windows.Forms.TextBox();
|
||||
this.groupBox2 = new System.Windows.Forms.GroupBox();
|
||||
this.tbx_resultCircleRow = new System.Windows.Forms.TextBox();
|
||||
this.tbx_resultCircleCol = new System.Windows.Forms.TextBox();
|
||||
this.tbx_resultCircleRadius = 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.btn_subExpectCircleEndAngle = new System.Windows.Forms.Button();
|
||||
this.tbx_endAngleSpan = new System.Windows.Forms.TextBox();
|
||||
this.label3 = new System.Windows.Forms.Label();
|
||||
this.btn_addExpectCircleEndAngle = new System.Windows.Forms.Button();
|
||||
this.label2 = new System.Windows.Forms.Label();
|
||||
this.label4 = new System.Windows.Forms.Label();
|
||||
this.label6 = new System.Windows.Forms.Label();
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.btn_subExpectCircleStartAngle = new System.Windows.Forms.Button();
|
||||
this.label5 = new System.Windows.Forms.Label();
|
||||
this.tbx_startAngleSpan = new System.Windows.Forms.TextBox();
|
||||
this.btn_addExpectCircleStartAngle = new System.Windows.Forms.Button();
|
||||
this.btn_runFindCircleTool = new System.Windows.Forms.Button();
|
||||
this.btn_subExpectRingRadiusLength = new System.Windows.Forms.Button();
|
||||
this.tbx_ringRadiusLengthSpan = new System.Windows.Forms.TextBox();
|
||||
this.btn_moveCliperRegion = new System.Windows.Forms.Button();
|
||||
this.btn_addExpectCircleRingRadiusLength = new System.Windows.Forms.Button();
|
||||
this.btn_subExpectCircleRadius = new System.Windows.Forms.Button();
|
||||
this.tbx_expectCircleRadiusSapn = new System.Windows.Forms.TextBox();
|
||||
this.btn_addExpectCirlceRadius = new System.Windows.Forms.Button();
|
||||
this.btn_addExpectCircleRow = new System.Windows.Forms.Button();
|
||||
this.btn_subExpectCircleCol = new System.Windows.Forms.Button();
|
||||
this.tbx_expectCircelRowSpan = new System.Windows.Forms.TextBox();
|
||||
this.tbx_expectCircleColSpan = new System.Windows.Forms.TextBox();
|
||||
this.btn_subExpectCircleRow = new System.Windows.Forms.Button();
|
||||
this.btn_addExpectCircleCol = new System.Windows.Forms.Button();
|
||||
this.panel1 = new System.Windows.Forms.Panel();
|
||||
this.groupBox2.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// tbx_threshold
|
||||
//
|
||||
this.tbx_threshold.Location = new System.Drawing.Point(545, 195);
|
||||
this.tbx_threshold.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.tbx_threshold.Name = "tbx_threshold";
|
||||
this.tbx_threshold.Size = new System.Drawing.Size(71, 21);
|
||||
this.tbx_threshold.TabIndex = 213;
|
||||
//
|
||||
// label12
|
||||
//
|
||||
this.label12.AutoSize = true;
|
||||
this.label12.Location = new System.Drawing.Point(484, 198);
|
||||
this.label12.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
|
||||
this.label12.Name = "label12";
|
||||
this.label12.Size = new System.Drawing.Size(41, 12);
|
||||
this.label12.TabIndex = 214;
|
||||
this.label12.Text = "阈值:";
|
||||
//
|
||||
// btn_subThreshold
|
||||
//
|
||||
this.btn_subThreshold.Location = new System.Drawing.Point(649, 194);
|
||||
this.btn_subThreshold.Margin = new System.Windows.Forms.Padding(2, 3, 2, 3);
|
||||
this.btn_subThreshold.Name = "btn_subThreshold";
|
||||
this.btn_subThreshold.Size = new System.Drawing.Size(29, 25);
|
||||
this.btn_subThreshold.TabIndex = 217;
|
||||
this.btn_subThreshold.Text = "-";
|
||||
this.btn_subThreshold.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// tbx_thresholdSpan
|
||||
//
|
||||
this.tbx_thresholdSpan.Location = new System.Drawing.Point(681, 195);
|
||||
this.tbx_thresholdSpan.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.tbx_thresholdSpan.Name = "tbx_thresholdSpan";
|
||||
this.tbx_thresholdSpan.Size = new System.Drawing.Size(35, 21);
|
||||
this.tbx_thresholdSpan.TabIndex = 216;
|
||||
this.tbx_thresholdSpan.Text = "10";
|
||||
//
|
||||
// btn_addThreshold
|
||||
//
|
||||
this.btn_addThreshold.Location = new System.Drawing.Point(719, 194);
|
||||
this.btn_addThreshold.Margin = new System.Windows.Forms.Padding(2, 3, 2, 3);
|
||||
this.btn_addThreshold.Name = "btn_addThreshold";
|
||||
this.btn_addThreshold.Size = new System.Drawing.Size(29, 25);
|
||||
this.btn_addThreshold.TabIndex = 215;
|
||||
this.btn_addThreshold.Text = "+";
|
||||
this.btn_addThreshold.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// cbx_polarity
|
||||
//
|
||||
this.cbx_polarity.FormattingEnabled = true;
|
||||
this.cbx_polarity.Items.AddRange(new object[] {
|
||||
"从明到暗",
|
||||
"从暗到明"});
|
||||
this.cbx_polarity.Location = new System.Drawing.Point(545, 287);
|
||||
this.cbx_polarity.Name = "cbx_polarity";
|
||||
this.cbx_polarity.Size = new System.Drawing.Size(71, 20);
|
||||
this.cbx_polarity.TabIndex = 212;
|
||||
this.cbx_polarity.Text = "从明到暗";
|
||||
//
|
||||
// btn_switchPolarity
|
||||
//
|
||||
this.btn_switchPolarity.Location = new System.Drawing.Point(649, 287);
|
||||
this.btn_switchPolarity.Margin = new System.Windows.Forms.Padding(2, 3, 2, 3);
|
||||
this.btn_switchPolarity.Name = "btn_switchPolarity";
|
||||
this.btn_switchPolarity.Size = new System.Drawing.Size(99, 25);
|
||||
this.btn_switchPolarity.TabIndex = 211;
|
||||
this.btn_switchPolarity.Text = "切换";
|
||||
this.btn_switchPolarity.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// tbx_cliperNum
|
||||
//
|
||||
this.tbx_cliperNum.Location = new System.Drawing.Point(545, 257);
|
||||
this.tbx_cliperNum.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.tbx_cliperNum.Name = "tbx_cliperNum";
|
||||
this.tbx_cliperNum.Size = new System.Drawing.Size(71, 21);
|
||||
this.tbx_cliperNum.TabIndex = 205;
|
||||
//
|
||||
// label8
|
||||
//
|
||||
this.label8.AutoSize = true;
|
||||
this.label8.Location = new System.Drawing.Point(484, 291);
|
||||
this.label8.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
|
||||
this.label8.Name = "label8";
|
||||
this.label8.Size = new System.Drawing.Size(41, 12);
|
||||
this.label8.TabIndex = 210;
|
||||
this.label8.Text = "极性:";
|
||||
//
|
||||
// btn_subCliperNum
|
||||
//
|
||||
this.btn_subCliperNum.Location = new System.Drawing.Point(649, 256);
|
||||
this.btn_subCliperNum.Margin = new System.Windows.Forms.Padding(2, 3, 2, 3);
|
||||
this.btn_subCliperNum.Name = "btn_subCliperNum";
|
||||
this.btn_subCliperNum.Size = new System.Drawing.Size(29, 25);
|
||||
this.btn_subCliperNum.TabIndex = 209;
|
||||
this.btn_subCliperNum.Text = "-";
|
||||
this.btn_subCliperNum.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// label11
|
||||
//
|
||||
this.label11.AutoSize = true;
|
||||
this.label11.Location = new System.Drawing.Point(484, 259);
|
||||
this.label11.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
|
||||
this.label11.Name = "label11";
|
||||
this.label11.Size = new System.Drawing.Size(65, 12);
|
||||
this.label11.TabIndex = 206;
|
||||
this.label11.Text = "卡尺数量:";
|
||||
//
|
||||
// tbx_cliperNumSpan
|
||||
//
|
||||
this.tbx_cliperNumSpan.Location = new System.Drawing.Point(681, 257);
|
||||
this.tbx_cliperNumSpan.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.tbx_cliperNumSpan.Name = "tbx_cliperNumSpan";
|
||||
this.tbx_cliperNumSpan.Size = new System.Drawing.Size(35, 21);
|
||||
this.tbx_cliperNumSpan.TabIndex = 208;
|
||||
this.tbx_cliperNumSpan.Text = "10";
|
||||
//
|
||||
// btn_addCliperNum
|
||||
//
|
||||
this.btn_addCliperNum.Location = new System.Drawing.Point(719, 256);
|
||||
this.btn_addCliperNum.Margin = new System.Windows.Forms.Padding(2, 3, 2, 3);
|
||||
this.btn_addCliperNum.Name = "btn_addCliperNum";
|
||||
this.btn_addCliperNum.Size = new System.Drawing.Size(29, 25);
|
||||
this.btn_addCliperNum.TabIndex = 207;
|
||||
this.btn_addCliperNum.Text = "+";
|
||||
this.btn_addCliperNum.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// tbx_ringRadiusLength
|
||||
//
|
||||
this.tbx_ringRadiusLength.Location = new System.Drawing.Point(545, 226);
|
||||
this.tbx_ringRadiusLength.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.tbx_ringRadiusLength.Name = "tbx_ringRadiusLength";
|
||||
this.tbx_ringRadiusLength.Size = new System.Drawing.Size(71, 21);
|
||||
this.tbx_ringRadiusLength.TabIndex = 180;
|
||||
//
|
||||
// tbx_endAngle
|
||||
//
|
||||
this.tbx_endAngle.Location = new System.Drawing.Point(545, 153);
|
||||
this.tbx_endAngle.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.tbx_endAngle.Name = "tbx_endAngle";
|
||||
this.tbx_endAngle.Size = new System.Drawing.Size(71, 21);
|
||||
this.tbx_endAngle.TabIndex = 199;
|
||||
//
|
||||
// tbx_expectCircelRow
|
||||
//
|
||||
this.tbx_expectCircelRow.Location = new System.Drawing.Point(545, 23);
|
||||
this.tbx_expectCircelRow.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.tbx_expectCircelRow.Name = "tbx_expectCircelRow";
|
||||
this.tbx_expectCircelRow.Size = new System.Drawing.Size(71, 21);
|
||||
this.tbx_expectCircelRow.TabIndex = 174;
|
||||
//
|
||||
// tbx_expectCircleCol
|
||||
//
|
||||
this.tbx_expectCircleCol.Location = new System.Drawing.Point(545, 56);
|
||||
this.tbx_expectCircleCol.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.tbx_expectCircleCol.Name = "tbx_expectCircleCol";
|
||||
this.tbx_expectCircleCol.Size = new System.Drawing.Size(71, 21);
|
||||
this.tbx_expectCircleCol.TabIndex = 176;
|
||||
//
|
||||
// tbx_expectCircleradius
|
||||
//
|
||||
this.tbx_expectCircleradius.Location = new System.Drawing.Point(545, 88);
|
||||
this.tbx_expectCircleradius.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.tbx_expectCircleradius.Name = "tbx_expectCircleradius";
|
||||
this.tbx_expectCircleradius.Size = new System.Drawing.Size(71, 21);
|
||||
this.tbx_expectCircleradius.TabIndex = 178;
|
||||
//
|
||||
// tbx_startAngle
|
||||
//
|
||||
this.tbx_startAngle.Location = new System.Drawing.Point(545, 121);
|
||||
this.tbx_startAngle.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.tbx_startAngle.Name = "tbx_startAngle";
|
||||
this.tbx_startAngle.Size = new System.Drawing.Size(71, 21);
|
||||
this.tbx_startAngle.TabIndex = 182;
|
||||
//
|
||||
// groupBox2
|
||||
//
|
||||
this.groupBox2.Controls.Add(this.tbx_resultCircleRow);
|
||||
this.groupBox2.Controls.Add(this.tbx_resultCircleCol);
|
||||
this.groupBox2.Controls.Add(this.tbx_resultCircleRadius);
|
||||
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(774, 22);
|
||||
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, 135);
|
||||
this.groupBox2.TabIndex = 204;
|
||||
this.groupBox2.TabStop = false;
|
||||
this.groupBox2.Text = "结果圆";
|
||||
//
|
||||
// tbx_resultCircleRow
|
||||
//
|
||||
this.tbx_resultCircleRow.Location = new System.Drawing.Point(91, 28);
|
||||
this.tbx_resultCircleRow.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.tbx_resultCircleRow.Name = "tbx_resultCircleRow";
|
||||
this.tbx_resultCircleRow.Size = new System.Drawing.Size(71, 21);
|
||||
this.tbx_resultCircleRow.TabIndex = 102;
|
||||
//
|
||||
// tbx_resultCircleCol
|
||||
//
|
||||
this.tbx_resultCircleCol.Location = new System.Drawing.Point(91, 61);
|
||||
this.tbx_resultCircleCol.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.tbx_resultCircleCol.Name = "tbx_resultCircleCol";
|
||||
this.tbx_resultCircleCol.Size = new System.Drawing.Size(71, 21);
|
||||
this.tbx_resultCircleCol.TabIndex = 104;
|
||||
//
|
||||
// tbx_resultCircleRadius
|
||||
//
|
||||
this.tbx_resultCircleRadius.Location = new System.Drawing.Point(91, 93);
|
||||
this.tbx_resultCircleRadius.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.tbx_resultCircleRadius.Name = "tbx_resultCircleRadius";
|
||||
this.tbx_resultCircleRadius.Size = new System.Drawing.Size(71, 21);
|
||||
this.tbx_resultCircleRadius.TabIndex = 106;
|
||||
//
|
||||
// label7
|
||||
//
|
||||
this.label7.AutoSize = true;
|
||||
this.label7.Location = new System.Drawing.Point(39, 31);
|
||||
this.label7.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
|
||||
this.label7.Name = "label7";
|
||||
this.label7.Size = new System.Drawing.Size(53, 12);
|
||||
this.label7.TabIndex = 103;
|
||||
this.label7.Text = "行坐标:";
|
||||
//
|
||||
// label10
|
||||
//
|
||||
this.label10.AutoSize = true;
|
||||
this.label10.Location = new System.Drawing.Point(39, 95);
|
||||
this.label10.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
|
||||
this.label10.Name = "label10";
|
||||
this.label10.Size = new System.Drawing.Size(41, 12);
|
||||
this.label10.TabIndex = 107;
|
||||
this.label10.Text = "半径:";
|
||||
//
|
||||
// label9
|
||||
//
|
||||
this.label9.AutoSize = true;
|
||||
this.label9.Location = new System.Drawing.Point(39, 63);
|
||||
this.label9.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
|
||||
this.label9.Name = "label9";
|
||||
this.label9.Size = new System.Drawing.Size(53, 12);
|
||||
this.label9.TabIndex = 105;
|
||||
this.label9.Text = "列坐标:";
|
||||
//
|
||||
// btn_subExpectCircleEndAngle
|
||||
//
|
||||
this.btn_subExpectCircleEndAngle.Location = new System.Drawing.Point(649, 152);
|
||||
this.btn_subExpectCircleEndAngle.Margin = new System.Windows.Forms.Padding(2, 3, 2, 3);
|
||||
this.btn_subExpectCircleEndAngle.Name = "btn_subExpectCircleEndAngle";
|
||||
this.btn_subExpectCircleEndAngle.Size = new System.Drawing.Size(29, 25);
|
||||
this.btn_subExpectCircleEndAngle.TabIndex = 203;
|
||||
this.btn_subExpectCircleEndAngle.Text = "-";
|
||||
this.btn_subExpectCircleEndAngle.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// tbx_endAngleSpan
|
||||
//
|
||||
this.tbx_endAngleSpan.Location = new System.Drawing.Point(681, 153);
|
||||
this.tbx_endAngleSpan.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.tbx_endAngleSpan.Name = "tbx_endAngleSpan";
|
||||
this.tbx_endAngleSpan.Size = new System.Drawing.Size(35, 21);
|
||||
this.tbx_endAngleSpan.TabIndex = 202;
|
||||
this.tbx_endAngleSpan.Text = "10";
|
||||
//
|
||||
// label3
|
||||
//
|
||||
this.label3.AutoSize = true;
|
||||
this.label3.Location = new System.Drawing.Point(484, 90);
|
||||
this.label3.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
|
||||
this.label3.Name = "label3";
|
||||
this.label3.Size = new System.Drawing.Size(41, 12);
|
||||
this.label3.TabIndex = 179;
|
||||
this.label3.Text = "半径:";
|
||||
//
|
||||
// btn_addExpectCircleEndAngle
|
||||
//
|
||||
this.btn_addExpectCircleEndAngle.Location = new System.Drawing.Point(719, 152);
|
||||
this.btn_addExpectCircleEndAngle.Margin = new System.Windows.Forms.Padding(2, 3, 2, 3);
|
||||
this.btn_addExpectCircleEndAngle.Name = "btn_addExpectCircleEndAngle";
|
||||
this.btn_addExpectCircleEndAngle.Size = new System.Drawing.Size(29, 25);
|
||||
this.btn_addExpectCircleEndAngle.TabIndex = 201;
|
||||
this.btn_addExpectCircleEndAngle.Text = "+";
|
||||
this.btn_addExpectCircleEndAngle.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// label2
|
||||
//
|
||||
this.label2.AutoSize = true;
|
||||
this.label2.Location = new System.Drawing.Point(484, 58);
|
||||
this.label2.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
|
||||
this.label2.Name = "label2";
|
||||
this.label2.Size = new System.Drawing.Size(53, 12);
|
||||
this.label2.TabIndex = 177;
|
||||
this.label2.Text = "列坐标:";
|
||||
//
|
||||
// label4
|
||||
//
|
||||
this.label4.AutoSize = true;
|
||||
this.label4.Location = new System.Drawing.Point(484, 229);
|
||||
this.label4.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
|
||||
this.label4.Name = "label4";
|
||||
this.label4.Size = new System.Drawing.Size(65, 12);
|
||||
this.label4.TabIndex = 181;
|
||||
this.label4.Text = "圆环径长:";
|
||||
//
|
||||
// label6
|
||||
//
|
||||
this.label6.AutoSize = true;
|
||||
this.label6.Location = new System.Drawing.Point(484, 155);
|
||||
this.label6.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
|
||||
this.label6.Name = "label6";
|
||||
this.label6.Size = new System.Drawing.Size(65, 12);
|
||||
this.label6.TabIndex = 200;
|
||||
this.label6.Text = "结束角度:";
|
||||
//
|
||||
// label1
|
||||
//
|
||||
this.label1.AutoSize = true;
|
||||
this.label1.Location = new System.Drawing.Point(484, 26);
|
||||
this.label1.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(53, 12);
|
||||
this.label1.TabIndex = 175;
|
||||
this.label1.Text = "行坐标:";
|
||||
//
|
||||
// btn_subExpectCircleStartAngle
|
||||
//
|
||||
this.btn_subExpectCircleStartAngle.Location = new System.Drawing.Point(649, 120);
|
||||
this.btn_subExpectCircleStartAngle.Margin = new System.Windows.Forms.Padding(2, 3, 2, 3);
|
||||
this.btn_subExpectCircleStartAngle.Name = "btn_subExpectCircleStartAngle";
|
||||
this.btn_subExpectCircleStartAngle.Size = new System.Drawing.Size(29, 25);
|
||||
this.btn_subExpectCircleStartAngle.TabIndex = 198;
|
||||
this.btn_subExpectCircleStartAngle.Text = "-";
|
||||
this.btn_subExpectCircleStartAngle.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// label5
|
||||
//
|
||||
this.label5.AutoSize = true;
|
||||
this.label5.Location = new System.Drawing.Point(484, 123);
|
||||
this.label5.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
|
||||
this.label5.Name = "label5";
|
||||
this.label5.Size = new System.Drawing.Size(65, 12);
|
||||
this.label5.TabIndex = 183;
|
||||
this.label5.Text = "起始角度:";
|
||||
//
|
||||
// tbx_startAngleSpan
|
||||
//
|
||||
this.tbx_startAngleSpan.Location = new System.Drawing.Point(681, 121);
|
||||
this.tbx_startAngleSpan.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.tbx_startAngleSpan.Name = "tbx_startAngleSpan";
|
||||
this.tbx_startAngleSpan.Size = new System.Drawing.Size(35, 21);
|
||||
this.tbx_startAngleSpan.TabIndex = 197;
|
||||
this.tbx_startAngleSpan.Text = "10";
|
||||
//
|
||||
// btn_addExpectCircleStartAngle
|
||||
//
|
||||
this.btn_addExpectCircleStartAngle.Location = new System.Drawing.Point(719, 120);
|
||||
this.btn_addExpectCircleStartAngle.Margin = new System.Windows.Forms.Padding(2, 3, 2, 3);
|
||||
this.btn_addExpectCircleStartAngle.Name = "btn_addExpectCircleStartAngle";
|
||||
this.btn_addExpectCircleStartAngle.Size = new System.Drawing.Size(29, 25);
|
||||
this.btn_addExpectCircleStartAngle.TabIndex = 196;
|
||||
this.btn_addExpectCircleStartAngle.Text = "+";
|
||||
this.btn_addExpectCircleStartAngle.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// btn_runFindCircleTool
|
||||
//
|
||||
this.btn_runFindCircleTool.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.btn_runFindCircleTool.Location = new System.Drawing.Point(877, 321);
|
||||
this.btn_runFindCircleTool.Margin = new System.Windows.Forms.Padding(2, 3, 2, 3);
|
||||
this.btn_runFindCircleTool.Name = "btn_runFindCircleTool";
|
||||
this.btn_runFindCircleTool.Size = new System.Drawing.Size(98, 45);
|
||||
this.btn_runFindCircleTool.TabIndex = 173;
|
||||
this.btn_runFindCircleTool.Text = "运行";
|
||||
this.btn_runFindCircleTool.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// btn_subExpectRingRadiusLength
|
||||
//
|
||||
this.btn_subExpectRingRadiusLength.Location = new System.Drawing.Point(649, 225);
|
||||
this.btn_subExpectRingRadiusLength.Margin = new System.Windows.Forms.Padding(2, 3, 2, 3);
|
||||
this.btn_subExpectRingRadiusLength.Name = "btn_subExpectRingRadiusLength";
|
||||
this.btn_subExpectRingRadiusLength.Size = new System.Drawing.Size(29, 25);
|
||||
this.btn_subExpectRingRadiusLength.TabIndex = 195;
|
||||
this.btn_subExpectRingRadiusLength.Text = "-";
|
||||
this.btn_subExpectRingRadiusLength.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// tbx_ringRadiusLengthSpan
|
||||
//
|
||||
this.tbx_ringRadiusLengthSpan.Location = new System.Drawing.Point(681, 226);
|
||||
this.tbx_ringRadiusLengthSpan.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.tbx_ringRadiusLengthSpan.Name = "tbx_ringRadiusLengthSpan";
|
||||
this.tbx_ringRadiusLengthSpan.Size = new System.Drawing.Size(35, 21);
|
||||
this.tbx_ringRadiusLengthSpan.TabIndex = 194;
|
||||
this.tbx_ringRadiusLengthSpan.Text = "10";
|
||||
//
|
||||
// btn_moveCliperRegion
|
||||
//
|
||||
this.btn_moveCliperRegion.Location = new System.Drawing.Point(672, 321);
|
||||
this.btn_moveCliperRegion.Margin = new System.Windows.Forms.Padding(2, 3, 2, 3);
|
||||
this.btn_moveCliperRegion.Name = "btn_moveCliperRegion";
|
||||
this.btn_moveCliperRegion.Size = new System.Drawing.Size(76, 26);
|
||||
this.btn_moveCliperRegion.TabIndex = 172;
|
||||
this.btn_moveCliperRegion.Text = "编辑卡尺";
|
||||
this.btn_moveCliperRegion.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// btn_addExpectCircleRingRadiusLength
|
||||
//
|
||||
this.btn_addExpectCircleRingRadiusLength.Location = new System.Drawing.Point(719, 225);
|
||||
this.btn_addExpectCircleRingRadiusLength.Margin = new System.Windows.Forms.Padding(2, 3, 2, 3);
|
||||
this.btn_addExpectCircleRingRadiusLength.Name = "btn_addExpectCircleRingRadiusLength";
|
||||
this.btn_addExpectCircleRingRadiusLength.Size = new System.Drawing.Size(29, 25);
|
||||
this.btn_addExpectCircleRingRadiusLength.TabIndex = 193;
|
||||
this.btn_addExpectCircleRingRadiusLength.Text = "+";
|
||||
this.btn_addExpectCircleRingRadiusLength.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// btn_subExpectCircleRadius
|
||||
//
|
||||
this.btn_subExpectCircleRadius.Location = new System.Drawing.Point(649, 87);
|
||||
this.btn_subExpectCircleRadius.Margin = new System.Windows.Forms.Padding(2, 3, 2, 3);
|
||||
this.btn_subExpectCircleRadius.Name = "btn_subExpectCircleRadius";
|
||||
this.btn_subExpectCircleRadius.Size = new System.Drawing.Size(29, 25);
|
||||
this.btn_subExpectCircleRadius.TabIndex = 192;
|
||||
this.btn_subExpectCircleRadius.Text = "-";
|
||||
this.btn_subExpectCircleRadius.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// tbx_expectCircleRadiusSapn
|
||||
//
|
||||
this.tbx_expectCircleRadiusSapn.Location = new System.Drawing.Point(681, 88);
|
||||
this.tbx_expectCircleRadiusSapn.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.tbx_expectCircleRadiusSapn.Name = "tbx_expectCircleRadiusSapn";
|
||||
this.tbx_expectCircleRadiusSapn.Size = new System.Drawing.Size(35, 21);
|
||||
this.tbx_expectCircleRadiusSapn.TabIndex = 191;
|
||||
this.tbx_expectCircleRadiusSapn.Text = "10";
|
||||
//
|
||||
// btn_addExpectCirlceRadius
|
||||
//
|
||||
this.btn_addExpectCirlceRadius.Location = new System.Drawing.Point(719, 87);
|
||||
this.btn_addExpectCirlceRadius.Margin = new System.Windows.Forms.Padding(2, 3, 2, 3);
|
||||
this.btn_addExpectCirlceRadius.Name = "btn_addExpectCirlceRadius";
|
||||
this.btn_addExpectCirlceRadius.Size = new System.Drawing.Size(29, 25);
|
||||
this.btn_addExpectCirlceRadius.TabIndex = 190;
|
||||
this.btn_addExpectCirlceRadius.Text = "+";
|
||||
this.btn_addExpectCirlceRadius.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// btn_addExpectCircleRow
|
||||
//
|
||||
this.btn_addExpectCircleRow.Location = new System.Drawing.Point(719, 22);
|
||||
this.btn_addExpectCircleRow.Margin = new System.Windows.Forms.Padding(2, 3, 2, 3);
|
||||
this.btn_addExpectCircleRow.Name = "btn_addExpectCircleRow";
|
||||
this.btn_addExpectCircleRow.Size = new System.Drawing.Size(29, 25);
|
||||
this.btn_addExpectCircleRow.TabIndex = 184;
|
||||
this.btn_addExpectCircleRow.Text = "+";
|
||||
this.btn_addExpectCircleRow.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// btn_subExpectCircleCol
|
||||
//
|
||||
this.btn_subExpectCircleCol.Location = new System.Drawing.Point(649, 55);
|
||||
this.btn_subExpectCircleCol.Margin = new System.Windows.Forms.Padding(2, 3, 2, 3);
|
||||
this.btn_subExpectCircleCol.Name = "btn_subExpectCircleCol";
|
||||
this.btn_subExpectCircleCol.Size = new System.Drawing.Size(29, 25);
|
||||
this.btn_subExpectCircleCol.TabIndex = 189;
|
||||
this.btn_subExpectCircleCol.Text = "-";
|
||||
this.btn_subExpectCircleCol.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// tbx_expectCircelRowSpan
|
||||
//
|
||||
this.tbx_expectCircelRowSpan.Location = new System.Drawing.Point(681, 23);
|
||||
this.tbx_expectCircelRowSpan.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.tbx_expectCircelRowSpan.Name = "tbx_expectCircelRowSpan";
|
||||
this.tbx_expectCircelRowSpan.Size = new System.Drawing.Size(35, 21);
|
||||
this.tbx_expectCircelRowSpan.TabIndex = 185;
|
||||
this.tbx_expectCircelRowSpan.Text = "10";
|
||||
//
|
||||
// tbx_expectCircleColSpan
|
||||
//
|
||||
this.tbx_expectCircleColSpan.Location = new System.Drawing.Point(681, 56);
|
||||
this.tbx_expectCircleColSpan.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.tbx_expectCircleColSpan.Name = "tbx_expectCircleColSpan";
|
||||
this.tbx_expectCircleColSpan.Size = new System.Drawing.Size(35, 21);
|
||||
this.tbx_expectCircleColSpan.TabIndex = 188;
|
||||
this.tbx_expectCircleColSpan.Text = "10";
|
||||
//
|
||||
// btn_subExpectCircleRow
|
||||
//
|
||||
this.btn_subExpectCircleRow.Location = new System.Drawing.Point(649, 22);
|
||||
this.btn_subExpectCircleRow.Margin = new System.Windows.Forms.Padding(2, 3, 2, 3);
|
||||
this.btn_subExpectCircleRow.Name = "btn_subExpectCircleRow";
|
||||
this.btn_subExpectCircleRow.Size = new System.Drawing.Size(29, 25);
|
||||
this.btn_subExpectCircleRow.TabIndex = 186;
|
||||
this.btn_subExpectCircleRow.Text = "-";
|
||||
this.btn_subExpectCircleRow.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// btn_addExpectCircleCol
|
||||
//
|
||||
this.btn_addExpectCircleCol.Location = new System.Drawing.Point(719, 55);
|
||||
this.btn_addExpectCircleCol.Margin = new System.Windows.Forms.Padding(2, 3, 2, 3);
|
||||
this.btn_addExpectCircleCol.Name = "btn_addExpectCircleCol";
|
||||
this.btn_addExpectCircleCol.Size = new System.Drawing.Size(29, 25);
|
||||
this.btn_addExpectCircleCol.TabIndex = 187;
|
||||
this.btn_addExpectCircleCol.Text = "+";
|
||||
this.btn_addExpectCircleCol.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// panel1
|
||||
//
|
||||
this.panel1.Location = new System.Drawing.Point(12, 12);
|
||||
this.panel1.Name = "panel1";
|
||||
this.panel1.Size = new System.Drawing.Size(453, 405);
|
||||
this.panel1.TabIndex = 218;
|
||||
//
|
||||
// FormFindCircle
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(1042, 429);
|
||||
this.Controls.Add(this.panel1);
|
||||
this.Controls.Add(this.tbx_threshold);
|
||||
this.Controls.Add(this.label12);
|
||||
this.Controls.Add(this.btn_subThreshold);
|
||||
this.Controls.Add(this.tbx_thresholdSpan);
|
||||
this.Controls.Add(this.btn_addThreshold);
|
||||
this.Controls.Add(this.cbx_polarity);
|
||||
this.Controls.Add(this.btn_switchPolarity);
|
||||
this.Controls.Add(this.tbx_cliperNum);
|
||||
this.Controls.Add(this.label8);
|
||||
this.Controls.Add(this.btn_subCliperNum);
|
||||
this.Controls.Add(this.label11);
|
||||
this.Controls.Add(this.tbx_cliperNumSpan);
|
||||
this.Controls.Add(this.btn_addCliperNum);
|
||||
this.Controls.Add(this.tbx_ringRadiusLength);
|
||||
this.Controls.Add(this.tbx_endAngle);
|
||||
this.Controls.Add(this.tbx_expectCircelRow);
|
||||
this.Controls.Add(this.tbx_expectCircleCol);
|
||||
this.Controls.Add(this.tbx_expectCircleradius);
|
||||
this.Controls.Add(this.tbx_startAngle);
|
||||
this.Controls.Add(this.groupBox2);
|
||||
this.Controls.Add(this.btn_subExpectCircleEndAngle);
|
||||
this.Controls.Add(this.tbx_endAngleSpan);
|
||||
this.Controls.Add(this.label3);
|
||||
this.Controls.Add(this.btn_addExpectCircleEndAngle);
|
||||
this.Controls.Add(this.label2);
|
||||
this.Controls.Add(this.label4);
|
||||
this.Controls.Add(this.label6);
|
||||
this.Controls.Add(this.label1);
|
||||
this.Controls.Add(this.btn_subExpectCircleStartAngle);
|
||||
this.Controls.Add(this.label5);
|
||||
this.Controls.Add(this.tbx_startAngleSpan);
|
||||
this.Controls.Add(this.btn_addExpectCircleStartAngle);
|
||||
this.Controls.Add(this.btn_runFindCircleTool);
|
||||
this.Controls.Add(this.btn_subExpectRingRadiusLength);
|
||||
this.Controls.Add(this.tbx_ringRadiusLengthSpan);
|
||||
this.Controls.Add(this.btn_moveCliperRegion);
|
||||
this.Controls.Add(this.btn_addExpectCircleRingRadiusLength);
|
||||
this.Controls.Add(this.btn_subExpectCircleRadius);
|
||||
this.Controls.Add(this.tbx_expectCircleRadiusSapn);
|
||||
this.Controls.Add(this.btn_addExpectCirlceRadius);
|
||||
this.Controls.Add(this.btn_addExpectCircleRow);
|
||||
this.Controls.Add(this.btn_subExpectCircleCol);
|
||||
this.Controls.Add(this.tbx_expectCircelRowSpan);
|
||||
this.Controls.Add(this.tbx_expectCircleColSpan);
|
||||
this.Controls.Add(this.btn_subExpectCircleRow);
|
||||
this.Controls.Add(this.btn_addExpectCircleCol);
|
||||
this.Name = "FormFindCircle";
|
||||
this.Text = "FormFindCircle";
|
||||
this.Load += new System.EventHandler(this.FormFindCircle_Load);
|
||||
this.groupBox2.ResumeLayout(false);
|
||||
this.groupBox2.PerformLayout();
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
public System.Windows.Forms.TextBox tbx_threshold;
|
||||
private System.Windows.Forms.Label label12;
|
||||
private System.Windows.Forms.Button btn_subThreshold;
|
||||
private System.Windows.Forms.TextBox tbx_thresholdSpan;
|
||||
private System.Windows.Forms.Button btn_addThreshold;
|
||||
public System.Windows.Forms.ComboBox cbx_polarity;
|
||||
private System.Windows.Forms.Button btn_switchPolarity;
|
||||
public System.Windows.Forms.TextBox tbx_cliperNum;
|
||||
private System.Windows.Forms.Label label8;
|
||||
private System.Windows.Forms.Button btn_subCliperNum;
|
||||
private System.Windows.Forms.Label label11;
|
||||
private System.Windows.Forms.TextBox tbx_cliperNumSpan;
|
||||
private System.Windows.Forms.Button btn_addCliperNum;
|
||||
public System.Windows.Forms.TextBox tbx_ringRadiusLength;
|
||||
public System.Windows.Forms.TextBox tbx_endAngle;
|
||||
public System.Windows.Forms.TextBox tbx_expectCircelRow;
|
||||
public System.Windows.Forms.TextBox tbx_expectCircleCol;
|
||||
public System.Windows.Forms.TextBox tbx_expectCircleradius;
|
||||
public System.Windows.Forms.TextBox tbx_startAngle;
|
||||
private System.Windows.Forms.GroupBox groupBox2;
|
||||
public System.Windows.Forms.TextBox tbx_resultCircleRow;
|
||||
public System.Windows.Forms.TextBox tbx_resultCircleCol;
|
||||
public System.Windows.Forms.TextBox tbx_resultCircleRadius;
|
||||
private System.Windows.Forms.Label label7;
|
||||
private System.Windows.Forms.Label label10;
|
||||
private System.Windows.Forms.Label label9;
|
||||
private System.Windows.Forms.Button btn_subExpectCircleEndAngle;
|
||||
private System.Windows.Forms.TextBox tbx_endAngleSpan;
|
||||
private System.Windows.Forms.Label label3;
|
||||
private System.Windows.Forms.Button btn_addExpectCircleEndAngle;
|
||||
private System.Windows.Forms.Label label2;
|
||||
private System.Windows.Forms.Label label4;
|
||||
private System.Windows.Forms.Label label6;
|
||||
private System.Windows.Forms.Label label1;
|
||||
private System.Windows.Forms.Button btn_subExpectCircleStartAngle;
|
||||
private System.Windows.Forms.Label label5;
|
||||
private System.Windows.Forms.TextBox tbx_startAngleSpan;
|
||||
private System.Windows.Forms.Button btn_addExpectCircleStartAngle;
|
||||
public System.Windows.Forms.Button btn_runFindCircleTool;
|
||||
private System.Windows.Forms.Button btn_subExpectRingRadiusLength;
|
||||
private System.Windows.Forms.TextBox tbx_ringRadiusLengthSpan;
|
||||
private System.Windows.Forms.Button btn_moveCliperRegion;
|
||||
private System.Windows.Forms.Button btn_addExpectCircleRingRadiusLength;
|
||||
private System.Windows.Forms.Button btn_subExpectCircleRadius;
|
||||
private System.Windows.Forms.TextBox tbx_expectCircleRadiusSapn;
|
||||
private System.Windows.Forms.Button btn_addExpectCirlceRadius;
|
||||
private System.Windows.Forms.Button btn_addExpectCircleRow;
|
||||
private System.Windows.Forms.Button btn_subExpectCircleCol;
|
||||
private System.Windows.Forms.TextBox tbx_expectCircelRowSpan;
|
||||
private System.Windows.Forms.TextBox tbx_expectCircleColSpan;
|
||||
private System.Windows.Forms.Button btn_subExpectCircleRow;
|
||||
private System.Windows.Forms.Button btn_addExpectCircleCol;
|
||||
private System.Windows.Forms.Panel panel1;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
using System;
|
||||
using System.Windows.Forms;
|
||||
using HalconWindow.HalconWindow;
|
||||
|
||||
namespace FindCircle
|
||||
{
|
||||
public partial class FormFindCircle : Form
|
||||
{
|
||||
FindClrcle myFindCircle = null;
|
||||
public FormFindCircle(object findCircleClass)
|
||||
{
|
||||
InitializeComponent();
|
||||
myFindCircle = (FindClrcle)findCircleClass;
|
||||
}
|
||||
|
||||
private void FormFindCircle_Load(object sender, EventArgs e)
|
||||
{
|
||||
HWindow_Final myWindow = new HWindow_Final();
|
||||
this.panel1.Controls.Add(myWindow);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,120 @@
|
||||
<?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>
|
||||
</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.
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\FindCircle\bin\Debug\halcondotnet.dll
|
||||
F:\VSCode\VisionEditTest\FindCircle\bin\Debug\HalconWindow.exe
|
||||
F:\VSCode\VisionEditTest\FindCircle\bin\Debug\HalconWindow.pdb
|
||||
F:\VSCode\VisionEditTest\FindCircle\bin\Debug\halcondotnet.xml
|
||||
F:\VSCode\VisionEditTest\FindCircle\obj\Debug\FindCircle.csprojResolveAssemblyReference.cache
|
||||
F:\VSCode\VisionEditTest\FindCircle\obj\Debug\FindCircle.FormFindCircle.resources
|
||||
F:\VSCode\VisionEditTest\FindCircle\obj\Debug\FindCircle.csproj.GenerateResource.Cache
|
||||
F:\VSCode\VisionEditTest\FindCircle\bin\Debug\FindCircleTool.dll
|
||||
F:\VSCode\VisionEditTest\FindCircle\bin\Debug\FindCircleTool.pdb
|
||||
F:\VSCode\VisionEditTest\FindCircle\bin\Debug\DataStruct.dll
|
||||
F:\VSCode\VisionEditTest\FindCircle\bin\Debug\DataStruct.pdb
|
||||
F:\VSCode\VisionEditTest\FindCircle\obj\Debug\FindCircleTool.dll
|
||||
F:\VSCode\VisionEditTest\FindCircle\obj\Debug\FindCircleTool.pdb
|
||||
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,13 @@
|
||||
F:\VSCode\VisionEditTest\FindCircle\bin\Debug\FindCircleTool.dll
|
||||
F:\VSCode\VisionEditTest\FindCircle\bin\Debug\FindCircleTool.pdb
|
||||
F:\VSCode\VisionEditTest\FindCircle\bin\Debug\DataStruct.dll
|
||||
F:\VSCode\VisionEditTest\FindCircle\bin\Debug\halcondotnet.dll
|
||||
F:\VSCode\VisionEditTest\FindCircle\bin\Debug\HalconWindow.exe
|
||||
F:\VSCode\VisionEditTest\FindCircle\bin\Debug\DataStruct.pdb
|
||||
F:\VSCode\VisionEditTest\FindCircle\bin\Debug\HalconWindow.pdb
|
||||
F:\VSCode\VisionEditTest\FindCircle\bin\Debug\halcondotnet.xml
|
||||
F:\VSCode\VisionEditTest\FindCircle\obj\Debug\FindCircleTool.csprojResolveAssemblyReference.cache
|
||||
F:\VSCode\VisionEditTest\FindCircle\obj\Debug\FindCircle.FormFindCircle.resources
|
||||
F:\VSCode\VisionEditTest\FindCircle\obj\Debug\FindCircleTool.csproj.GenerateResource.Cache
|
||||
F:\VSCode\VisionEditTest\FindCircle\obj\Debug\FindCircleTool.dll
|
||||
F:\VSCode\VisionEditTest\FindCircle\obj\Debug\FindCircleTool.pdb
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -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.
Generated
+46
@@ -0,0 +1,46 @@
|
||||
namespace HalconTool
|
||||
{
|
||||
partial class FormHalconTool
|
||||
{
|
||||
/// <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()
|
||||
{
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// FormHalconTool
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(816, 438);
|
||||
this.Name = "FormHalconTool";
|
||||
this.Text = "FormHalconTool";
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
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;
|
||||
|
||||
namespace HalconTool
|
||||
{
|
||||
public partial class FormHalconTool : Form
|
||||
{
|
||||
public FormHalconTool()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,120 @@
|
||||
<?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>
|
||||
</root>
|
||||
@@ -6,7 +6,7 @@ using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using HalconDotNet;
|
||||
|
||||
namespace VisionEdit.ToolLib
|
||||
namespace HalconTool
|
||||
{
|
||||
public class HalconTool
|
||||
{
|
||||
@@ -0,0 +1,70 @@
|
||||
<?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>{F5669FB7-77EC-44B9-898B-6D575B7D26EA}</ProjectGuid>
|
||||
<OutputType>Library</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>HalconTool</RootNamespace>
|
||||
<AssemblyName>HalconTool</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="FormHalconTool.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="FormHalconTool.Designer.cs">
|
||||
<DependentUpon>FormHalconTool.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="HalconTool.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="FormHalconTool.resx">
|
||||
<DependentUpon>FormHalconTool.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
</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>
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user