mirror of
https://github.com/eggplantlwj/VisionEdit.git
synced 2026-04-16 01:16:36 +08:00
增加卡尺工具,修复了一些bug
This commit is contained in:
@@ -5,12 +5,14 @@ using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using CommonMethods;
|
||||
using HalconDotNet;
|
||||
using HalconWindow.HalconWindow;
|
||||
using ToolBase;
|
||||
using static DataStruct.DataStruct;
|
||||
|
||||
namespace CaliperTool
|
||||
{
|
||||
[Serializable]
|
||||
public class CaliperTool:IToolInfo
|
||||
public class Caliper: IToolBase
|
||||
{
|
||||
public bool toolEnable = true;
|
||||
/// <summary>
|
||||
@@ -48,11 +50,11 @@ namespace CaliperTool
|
||||
/// <summary>
|
||||
/// 卡尺高
|
||||
/// </summary>
|
||||
public int length1 = 40;
|
||||
public HTuple length1 = 40;
|
||||
/// <summary>
|
||||
/// 卡尺宽
|
||||
/// </summary>
|
||||
public int length2 = 40;
|
||||
public HTuple length2 = 40;
|
||||
/// <summary>
|
||||
/// 找边极性,从明到暗或从暗到明
|
||||
/// </summary>
|
||||
@@ -77,86 +79,189 @@ namespace CaliperTool
|
||||
/// 交点显示
|
||||
/// </summary>
|
||||
public bool dispCross = true;
|
||||
/// <summary>
|
||||
/// 找到的线段
|
||||
/// <summary
|
||||
/// 是否显示的线
|
||||
/// </summary>
|
||||
public Point resultPoint = null;
|
||||
/// <summary>
|
||||
/// 显示的线
|
||||
/// </summary>
|
||||
public HObject LineDisp = null;
|
||||
public bool LineDisp = true;
|
||||
/// <summary>
|
||||
/// 新的跟随姿态变化后的预期线信息
|
||||
/// </summary>
|
||||
HTuple newExpectLineStartRow = new HTuple(200), newExpectLineStartCol = new HTuple(200), newExpectLineEndRow = new HTuple(200), newExpectLineEndCol = new HTuple(600);
|
||||
HTuple newExpectRecStartRow = new HTuple(200), newExpectRecStartColumn = new HTuple(200), newExpectPhi = new HTuple(0);
|
||||
/// <summary>
|
||||
/// 查找到的线的起点行坐标
|
||||
/// </summary>
|
||||
private HTuple _resultLineStartRow = 0;
|
||||
internal HTuple ResultLineStartRow
|
||||
private HTuple _resultRow = 0;
|
||||
public HTuple ResulttRow
|
||||
{
|
||||
get
|
||||
{
|
||||
_resultLineStartRow = Math.Round((double)_resultLineStartRow, 3);
|
||||
return _resultLineStartRow;
|
||||
_resultRow = Math.Round((double)_resultRow, 3);
|
||||
return _resultRow;
|
||||
}
|
||||
set { _resultLineStartRow = value; }
|
||||
set { _resultRow = value; }
|
||||
}
|
||||
/// <summary>
|
||||
/// 查找到的线的起点列坐标
|
||||
/// </summary>
|
||||
private HTuple _resultLineStartCol = 0;
|
||||
internal HTuple ResultLineStartCol
|
||||
private HTuple _resultCol = 0;
|
||||
public HTuple ResultCol
|
||||
{
|
||||
get
|
||||
{
|
||||
_resultLineStartCol = Math.Round((double)_resultLineStartCol, 3);
|
||||
return _resultLineStartCol;
|
||||
_resultCol = Math.Round((double)_resultCol, 3);
|
||||
return _resultCol;
|
||||
}
|
||||
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; }
|
||||
set { _resultCol = value; }
|
||||
}
|
||||
|
||||
public HObject inputImage { get; set; } = null;
|
||||
|
||||
public ToolRunStatu toolRunStatu { get; set; } = ToolRunStatu.Not_Run;
|
||||
|
||||
public void DispImage()
|
||||
{
|
||||
if (inputImage != null)
|
||||
{
|
||||
FormCaliper.Instance.myHwindow.HobjectToHimage(inputImage);
|
||||
}
|
||||
}
|
||||
|
||||
internal void DrawExpectLine(HWindow_Final myHwindow)
|
||||
{
|
||||
if (inputImage != null)
|
||||
{
|
||||
try
|
||||
{
|
||||
myHwindow.DrawModel = true;
|
||||
myHwindow.Focus();
|
||||
HOperatorSet.SetColor(myHwindow.hWindowControl.HalconWindow, new HTuple("green"));
|
||||
HOperatorSet.DrawRectangle2Mod(myHwindow.hWindowControl.HalconWindow, expectRecStartRow, expectRecStartColumn, expectAngle, length1, length2,
|
||||
out expectRecStartRow, out expectRecStartColumn, out expectAngle, out length1, out length2);
|
||||
|
||||
if (inputPose != null)
|
||||
{
|
||||
templatePose.X = inputPose.X;
|
||||
templatePose.Y = inputPose.Y;
|
||||
templatePose.U = inputPose.U;
|
||||
}
|
||||
// 输入
|
||||
FormCaliper.Instance.tbx_expectCenterRow.Text = expectRecStartRow.TupleString("10.3f");
|
||||
FormCaliper.Instance.tbx_expectCenterCol.Text = expectRecStartColumn.TupleString("10.3f");
|
||||
FormCaliper.Instance.tbx_expectPhi.Text = expectAngle.TupleString("10.3f");
|
||||
// 参数
|
||||
FormCaliper.Instance.tbx_caliperLength1.Text = length1.TupleString("10.3f");
|
||||
FormCaliper.Instance.tbx_caliperLength2.Text = length2.TupleString("10.3f");
|
||||
|
||||
myHwindow.DrawModel = false;
|
||||
|
||||
// Run();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
FormCaliper.Instance.TextBoxMessageDisp(ex.Message, System.Drawing.Color.Red);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
FormCaliper.Instance.TextBoxMessageDisp("图像为空", System.Drawing.Color.Red);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void UpdateImage()
|
||||
{
|
||||
FormCaliper.Instance.myHwindow.ClearWindow();
|
||||
DispImage();
|
||||
}
|
||||
|
||||
public void Run()
|
||||
{
|
||||
HTuple HMeasureHandle = new HTuple();
|
||||
HTuple resultRow, resultCol;
|
||||
if (inputImage == null)
|
||||
{
|
||||
FormCaliper.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)expectRecStartRow, (HTuple)expectRecStartColumn, out newExpectRecStartRow, out newExpectRecStartColumn);
|
||||
}
|
||||
else
|
||||
{
|
||||
newExpectRecStartRow = expectRecStartRow;
|
||||
newExpectRecStartColumn = expectRecStartColumn;
|
||||
}
|
||||
HTuple width, height, AmplitudeThreshold, distance;
|
||||
HOperatorSet.GetImageSize(inputImage, out width, out height);
|
||||
HOperatorSet.GenMeasureRectangle2(expectRecStartRow, expectRecStartColumn, expectAngle, length1, length2, width, height, "nearest_neighbor", out HMeasureHandle);
|
||||
HOperatorSet.MeasurePos(inputImage, HMeasureHandle, sigma, threshold, polarity, edgeSelect, out resultRow, out resultCol, out AmplitudeThreshold, out distance);
|
||||
if(resultRow.Length != 0)
|
||||
{
|
||||
ResulttRow = resultRow;
|
||||
ResultCol = resultCol;
|
||||
}
|
||||
|
||||
//把点显示出来
|
||||
HOperatorSet.GenCrossContourXld(out crossDisp, ResulttRow, ResultCol, new HTuple(12), new HTuple(0));
|
||||
DispMainWindow(FormCaliper.Instance.myHwindow);
|
||||
// 参数传递
|
||||
ParamsTrans();
|
||||
FormCaliper.Instance.tbx_resultStartRow.Text = ResulttRow.ToString();
|
||||
FormCaliper.Instance.tbx_resultStartCol.Text = ResultCol.ToString();
|
||||
FormCaliper.Instance.TextBoxMessageDisp("运行成功", System.Drawing.Color.Green);
|
||||
toolRunStatu = ToolRunStatu.Succeed;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
FormCaliper.Instance.TextBoxMessageDisp("工具运行异常" + ex.Message, System.Drawing.Color.Red);
|
||||
}
|
||||
finally
|
||||
{
|
||||
//homMat2DArrow.Dispose();
|
||||
//arrow.Dispose();
|
||||
//arrowTrans.Dispose();
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 将数据传递给FindlineToolInterface
|
||||
/// </summary>
|
||||
private void ParamsTrans()
|
||||
{
|
||||
FormCaliper.Instance.myToolInfo.toolOutput.Clear();
|
||||
FormCaliper.Instance.myToolInfo.toolOutput.Add(new ToolIO("outputCenterRow", ResulttRow, DataType.IntValue));
|
||||
FormCaliper.Instance.myToolInfo.toolOutput.Add(new ToolIO("outputCenterColumn", ResultCol, DataType.IntValue));
|
||||
}
|
||||
|
||||
public void DispMainWindow(HWindow_Final window)
|
||||
{
|
||||
// 显示矩形
|
||||
if (dispRec)
|
||||
{
|
||||
window.DispObj(contoursDisp, "blue");
|
||||
}
|
||||
// 显示交点
|
||||
if (dispCross)
|
||||
{
|
||||
window.DispObj(crossDisp, "orange");
|
||||
}
|
||||
//显示找到的线
|
||||
// window.DispObj(LineDisp, "green");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -35,6 +35,8 @@
|
||||
</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" />
|
||||
@@ -44,6 +46,12 @@
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="CaliperTool.cs" />
|
||||
<Compile Include="FormCaliper.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="FormCaliper.Designer.cs">
|
||||
<DependentUpon>FormCaliper.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
@@ -55,6 +63,19 @@
|
||||
<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>
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="FormCaliper.resx">
|
||||
<DependentUpon>FormCaliper.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.
|
||||
|
||||
519
CaliperTool/FormCaliper.Designer.cs
generated
Normal file
519
CaliperTool/FormCaliper.Designer.cs
generated
Normal file
@@ -0,0 +1,519 @@
|
||||
namespace CaliperTool
|
||||
{
|
||||
partial class FormCaliper
|
||||
{
|
||||
/// <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(FormCaliper));
|
||||
this.tbx_resultStartRow = new System.Windows.Forms.TextBox();
|
||||
this.label5 = new System.Windows.Forms.Label();
|
||||
this.label16 = new System.Windows.Forms.Label();
|
||||
this.label14 = new System.Windows.Forms.Label();
|
||||
this.label15 = new System.Windows.Forms.Label();
|
||||
this.label13 = new System.Windows.Forms.Label();
|
||||
this.label11 = new System.Windows.Forms.Label();
|
||||
this.tbx_caliperLength2 = new System.Windows.Forms.TextBox();
|
||||
this.tbx_Sigma = new System.Windows.Forms.TextBox();
|
||||
this.tbx_caliperLength1 = new System.Windows.Forms.TextBox();
|
||||
this.tbx_threshold = new System.Windows.Forms.TextBox();
|
||||
this.cbx_polarity = new System.Windows.Forms.ComboBox();
|
||||
this.btn_runCaliperool = new System.Windows.Forms.Button();
|
||||
this.btn_moveCliperRegion = new System.Windows.Forms.Button();
|
||||
this.cbx_edgeSelect = new System.Windows.Forms.ComboBox();
|
||||
this.tbx_resultStartCol = new System.Windows.Forms.TextBox();
|
||||
this.txbLog = new System.Windows.Forms.TextBox();
|
||||
this.splitContainer1 = new System.Windows.Forms.SplitContainer();
|
||||
this.panel1 = new System.Windows.Forms.Panel();
|
||||
this.groupBox4 = new System.Windows.Forms.GroupBox();
|
||||
this.groupBox3 = new System.Windows.Forms.GroupBox();
|
||||
this.chBDispCaliperROI = new System.Windows.Forms.CheckBox();
|
||||
this.chBDispCross = new System.Windows.Forms.CheckBox();
|
||||
this.chBDispRec = new System.Windows.Forms.CheckBox();
|
||||
this.groupBox1 = new System.Windows.Forms.GroupBox();
|
||||
this.label3 = new System.Windows.Forms.Label();
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.tbx_expectPhi = new System.Windows.Forms.TextBox();
|
||||
this.tbx_expectCenterCol = new System.Windows.Forms.TextBox();
|
||||
this.label2 = new System.Windows.Forms.Label();
|
||||
this.tbx_expectCenterRow = new System.Windows.Forms.TextBox();
|
||||
this.groupBox2 = new System.Windows.Forms.GroupBox();
|
||||
this.label7 = new System.Windows.Forms.Label();
|
||||
this.label9 = new System.Windows.Forms.Label();
|
||||
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
|
||||
this.splitContainer1.Panel1.SuspendLayout();
|
||||
this.splitContainer1.Panel2.SuspendLayout();
|
||||
this.splitContainer1.SuspendLayout();
|
||||
this.groupBox4.SuspendLayout();
|
||||
this.groupBox3.SuspendLayout();
|
||||
this.groupBox1.SuspendLayout();
|
||||
this.groupBox2.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// tbx_resultStartRow
|
||||
//
|
||||
this.tbx_resultStartRow.Location = new System.Drawing.Point(98, 28);
|
||||
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;
|
||||
//
|
||||
// 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(19, 201);
|
||||
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 = "结果选择:";
|
||||
//
|
||||
// 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(19, 71);
|
||||
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 = "卡尺宽:";
|
||||
//
|
||||
// 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(19, 38);
|
||||
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 = "卡尺长:";
|
||||
//
|
||||
// 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(21, 138);
|
||||
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:";
|
||||
//
|
||||
// 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(19, 105);
|
||||
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 = "阈值:";
|
||||
//
|
||||
// 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(19, 171);
|
||||
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_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(109, 68);
|
||||
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;
|
||||
//
|
||||
// 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(111, 135);
|
||||
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;
|
||||
//
|
||||
// tbx_caliperLength1
|
||||
//
|
||||
this.tbx_caliperLength1.Font = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.tbx_caliperLength1.Location = new System.Drawing.Point(109, 35);
|
||||
this.tbx_caliperLength1.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.tbx_caliperLength1.Name = "tbx_caliperLength1";
|
||||
this.tbx_caliperLength1.Size = new System.Drawing.Size(92, 26);
|
||||
this.tbx_caliperLength1.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(109, 102);
|
||||
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;
|
||||
//
|
||||
// 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(109, 168);
|
||||
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_runCaliperool
|
||||
//
|
||||
this.btn_runCaliperool.BackColor = System.Drawing.Color.White;
|
||||
this.btn_runCaliperool.Location = new System.Drawing.Point(430, 355);
|
||||
this.btn_runCaliperool.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
|
||||
this.btn_runCaliperool.Name = "btn_runCaliperool";
|
||||
this.btn_runCaliperool.Size = new System.Drawing.Size(90, 48);
|
||||
this.btn_runCaliperool.TabIndex = 270;
|
||||
this.btn_runCaliperool.Text = "运行";
|
||||
this.btn_runCaliperool.UseVisualStyleBackColor = false;
|
||||
this.btn_runCaliperool.Click += new System.EventHandler(this.btn_runCaliperool_Click);
|
||||
//
|
||||
// btn_moveCliperRegion
|
||||
//
|
||||
this.btn_moveCliperRegion.BackColor = System.Drawing.Color.White;
|
||||
this.btn_moveCliperRegion.Location = new System.Drawing.Point(296, 355);
|
||||
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 = false;
|
||||
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(109, 199);
|
||||
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";
|
||||
//
|
||||
// tbx_resultStartCol
|
||||
//
|
||||
this.tbx_resultStartCol.Location = new System.Drawing.Point(98, 61);
|
||||
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;
|
||||
//
|
||||
// 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(1, 487);
|
||||
this.txbLog.Name = "txbLog";
|
||||
this.txbLog.ReadOnly = true;
|
||||
this.txbLog.Size = new System.Drawing.Size(1127, 21);
|
||||
this.txbLog.TabIndex = 276;
|
||||
//
|
||||
// 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(1, 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.groupBox4);
|
||||
this.splitContainer1.Panel2.Controls.Add(this.groupBox3);
|
||||
this.splitContainer1.Panel2.Controls.Add(this.groupBox1);
|
||||
this.splitContainer1.Panel2.Controls.Add(this.groupBox2);
|
||||
this.splitContainer1.Panel2.Controls.Add(this.btn_runCaliperool);
|
||||
this.splitContainer1.Panel2.Controls.Add(this.btn_moveCliperRegion);
|
||||
this.splitContainer1.Size = new System.Drawing.Size(1127, 479);
|
||||
this.splitContainer1.SplitterDistance = 562;
|
||||
this.splitContainer1.TabIndex = 275;
|
||||
//
|
||||
// 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(562, 479);
|
||||
this.panel1.TabIndex = 272;
|
||||
//
|
||||
// groupBox4
|
||||
//
|
||||
this.groupBox4.Controls.Add(this.label14);
|
||||
this.groupBox4.Controls.Add(this.cbx_edgeSelect);
|
||||
this.groupBox4.Controls.Add(this.cbx_polarity);
|
||||
this.groupBox4.Controls.Add(this.tbx_threshold);
|
||||
this.groupBox4.Controls.Add(this.label5);
|
||||
this.groupBox4.Controls.Add(this.tbx_caliperLength1);
|
||||
this.groupBox4.Controls.Add(this.label16);
|
||||
this.groupBox4.Controls.Add(this.tbx_Sigma);
|
||||
this.groupBox4.Controls.Add(this.tbx_caliperLength2);
|
||||
this.groupBox4.Controls.Add(this.label15);
|
||||
this.groupBox4.Controls.Add(this.label11);
|
||||
this.groupBox4.Controls.Add(this.label13);
|
||||
this.groupBox4.Location = new System.Drawing.Point(14, 166);
|
||||
this.groupBox4.Name = "groupBox4";
|
||||
this.groupBox4.Size = new System.Drawing.Size(224, 271);
|
||||
this.groupBox4.TabIndex = 320;
|
||||
this.groupBox4.TabStop = false;
|
||||
this.groupBox4.Text = "卡尺参数";
|
||||
//
|
||||
// groupBox3
|
||||
//
|
||||
this.groupBox3.Controls.Add(this.chBDispCaliperROI);
|
||||
this.groupBox3.Controls.Add(this.chBDispCross);
|
||||
this.groupBox3.Controls.Add(this.chBDispRec);
|
||||
this.groupBox3.Location = new System.Drawing.Point(296, 170);
|
||||
this.groupBox3.Name = "groupBox3";
|
||||
this.groupBox3.Size = new System.Drawing.Size(213, 124);
|
||||
this.groupBox3.TabIndex = 319;
|
||||
this.groupBox3.TabStop = false;
|
||||
this.groupBox3.Text = "显示";
|
||||
//
|
||||
// chBDispCaliperROI
|
||||
//
|
||||
this.chBDispCaliperROI.AutoSize = true;
|
||||
this.chBDispCaliperROI.Location = new System.Drawing.Point(29, 92);
|
||||
this.chBDispCaliperROI.Name = "chBDispCaliperROI";
|
||||
this.chBDispCaliperROI.Size = new System.Drawing.Size(96, 16);
|
||||
this.chBDispCaliperROI.TabIndex = 0;
|
||||
this.chBDispCaliperROI.Text = "结果显示交点";
|
||||
this.chBDispCaliperROI.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// chBDispCross
|
||||
//
|
||||
this.chBDispCross.AutoSize = true;
|
||||
this.chBDispCross.Location = new System.Drawing.Point(29, 60);
|
||||
this.chBDispCross.Name = "chBDispCross";
|
||||
this.chBDispCross.Size = new System.Drawing.Size(96, 16);
|
||||
this.chBDispCross.TabIndex = 0;
|
||||
this.chBDispCross.Text = "结果显示交点";
|
||||
this.chBDispCross.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// chBDispRec
|
||||
//
|
||||
this.chBDispRec.AutoSize = true;
|
||||
this.chBDispRec.Location = new System.Drawing.Point(29, 29);
|
||||
this.chBDispRec.Name = "chBDispRec";
|
||||
this.chBDispRec.Size = new System.Drawing.Size(108, 16);
|
||||
this.chBDispRec.TabIndex = 0;
|
||||
this.chBDispRec.Text = "结果显示矩形框";
|
||||
this.chBDispRec.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// groupBox1
|
||||
//
|
||||
this.groupBox1.Controls.Add(this.label3);
|
||||
this.groupBox1.Controls.Add(this.label1);
|
||||
this.groupBox1.Controls.Add(this.tbx_expectPhi);
|
||||
this.groupBox1.Controls.Add(this.tbx_expectCenterCol);
|
||||
this.groupBox1.Controls.Add(this.label2);
|
||||
this.groupBox1.Controls.Add(this.tbx_expectCenterRow);
|
||||
this.groupBox1.Location = new System.Drawing.Point(14, 19);
|
||||
this.groupBox1.Name = "groupBox1";
|
||||
this.groupBox1.Size = new System.Drawing.Size(224, 127);
|
||||
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(65, 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_expectPhi
|
||||
//
|
||||
this.tbx_expectPhi.Location = new System.Drawing.Point(131, 86);
|
||||
this.tbx_expectPhi.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.tbx_expectPhi.Name = "tbx_expectPhi";
|
||||
this.tbx_expectPhi.Size = new System.Drawing.Size(71, 21);
|
||||
this.tbx_expectPhi.TabIndex = 275;
|
||||
//
|
||||
// tbx_expectCenterCol
|
||||
//
|
||||
this.tbx_expectCenterCol.Location = new System.Drawing.Point(131, 57);
|
||||
this.tbx_expectCenterCol.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.tbx_expectCenterCol.Name = "tbx_expectCenterCol";
|
||||
this.tbx_expectCenterCol.Size = new System.Drawing.Size(71, 21);
|
||||
this.tbx_expectCenterCol.TabIndex = 273;
|
||||
//
|
||||
// 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_expectCenterRow
|
||||
//
|
||||
this.tbx_expectCenterRow.Location = new System.Drawing.Point(131, 28);
|
||||
this.tbx_expectCenterRow.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.tbx_expectCenterRow.Name = "tbx_expectCenterRow";
|
||||
this.tbx_expectCenterRow.Size = new System.Drawing.Size(71, 21);
|
||||
this.tbx_expectCenterRow.TabIndex = 271;
|
||||
//
|
||||
// groupBox2
|
||||
//
|
||||
this.groupBox2.Controls.Add(this.tbx_resultStartRow);
|
||||
this.groupBox2.Controls.Add(this.tbx_resultStartCol);
|
||||
this.groupBox2.Controls.Add(this.label7);
|
||||
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, 127);
|
||||
this.groupBox2.TabIndex = 297;
|
||||
this.groupBox2.TabStop = false;
|
||||
this.groupBox2.Text = "结果点";
|
||||
//
|
||||
// label7
|
||||
//
|
||||
this.label7.AutoSize = true;
|
||||
this.label7.Location = new System.Drawing.Point(22, 31);
|
||||
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 = "中心行坐标:";
|
||||
//
|
||||
// label9
|
||||
//
|
||||
this.label9.AutoSize = true;
|
||||
this.label9.Location = new System.Drawing.Point(22, 64);
|
||||
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 = "中心列坐标:";
|
||||
//
|
||||
// FormCaliper
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(1132, 509);
|
||||
this.Controls.Add(this.txbLog);
|
||||
this.Controls.Add(this.splitContainer1);
|
||||
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
|
||||
this.Name = "FormCaliper";
|
||||
this.Text = "卡尺工具";
|
||||
this.Load += new System.EventHandler(this.FormCaliper_Load);
|
||||
this.splitContainer1.Panel1.ResumeLayout(false);
|
||||
this.splitContainer1.Panel2.ResumeLayout(false);
|
||||
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit();
|
||||
this.splitContainer1.ResumeLayout(false);
|
||||
this.groupBox4.ResumeLayout(false);
|
||||
this.groupBox4.PerformLayout();
|
||||
this.groupBox3.ResumeLayout(false);
|
||||
this.groupBox3.PerformLayout();
|
||||
this.groupBox1.ResumeLayout(false);
|
||||
this.groupBox1.PerformLayout();
|
||||
this.groupBox2.ResumeLayout(false);
|
||||
this.groupBox2.PerformLayout();
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
public System.Windows.Forms.TextBox tbx_resultStartRow;
|
||||
private System.Windows.Forms.Label label5;
|
||||
private System.Windows.Forms.Label label16;
|
||||
private System.Windows.Forms.Label label14;
|
||||
private System.Windows.Forms.Label label15;
|
||||
private System.Windows.Forms.Label label13;
|
||||
private System.Windows.Forms.Label label11;
|
||||
public System.Windows.Forms.TextBox tbx_caliperLength2;
|
||||
public System.Windows.Forms.TextBox tbx_Sigma;
|
||||
public System.Windows.Forms.TextBox tbx_caliperLength1;
|
||||
public System.Windows.Forms.TextBox tbx_threshold;
|
||||
public System.Windows.Forms.ComboBox cbx_polarity;
|
||||
public System.Windows.Forms.Button btn_runCaliperool;
|
||||
private System.Windows.Forms.Button btn_moveCliperRegion;
|
||||
public System.Windows.Forms.ComboBox cbx_edgeSelect;
|
||||
public System.Windows.Forms.TextBox tbx_resultStartCol;
|
||||
public System.Windows.Forms.TextBox txbLog;
|
||||
private System.Windows.Forms.SplitContainer splitContainer1;
|
||||
private System.Windows.Forms.Panel panel1;
|
||||
private System.Windows.Forms.GroupBox groupBox3;
|
||||
private System.Windows.Forms.CheckBox chBDispCross;
|
||||
private System.Windows.Forms.CheckBox chBDispRec;
|
||||
private System.Windows.Forms.GroupBox groupBox1;
|
||||
private System.Windows.Forms.Label label3;
|
||||
private System.Windows.Forms.Label label1;
|
||||
public System.Windows.Forms.TextBox tbx_expectPhi;
|
||||
public System.Windows.Forms.TextBox tbx_expectCenterCol;
|
||||
private System.Windows.Forms.Label label2;
|
||||
public System.Windows.Forms.TextBox tbx_expectCenterRow;
|
||||
private System.Windows.Forms.GroupBox groupBox2;
|
||||
private System.Windows.Forms.Label label7;
|
||||
private System.Windows.Forms.Label label9;
|
||||
private System.Windows.Forms.GroupBox groupBox4;
|
||||
private System.Windows.Forms.CheckBox chBDispCaliperROI;
|
||||
}
|
||||
}
|
||||
109
CaliperTool/FormCaliper.cs
Normal file
109
CaliperTool/FormCaliper.cs
Normal file
@@ -0,0 +1,109 @@
|
||||
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 HalconWindow.HalconWindow;
|
||||
|
||||
namespace CaliperTool
|
||||
{
|
||||
public partial class FormCaliper : Form
|
||||
{
|
||||
|
||||
public Caliper myCaliper = null;
|
||||
public IToolInfo myToolInfo = null;
|
||||
public HWindow_Final myHwindow = new HWindow_Final();
|
||||
|
||||
private static FormCaliper _instance;
|
||||
public FormCaliper(ref object caliper)
|
||||
{
|
||||
InitializeComponent();
|
||||
myToolInfo = (IToolInfo)caliper;
|
||||
myCaliper = (Caliper)myToolInfo.tool;
|
||||
_instance = this;
|
||||
|
||||
}
|
||||
public static FormCaliper Instance
|
||||
{
|
||||
get
|
||||
{
|
||||
if(_instance!= null)
|
||||
{
|
||||
return _instance;
|
||||
}
|
||||
else
|
||||
{
|
||||
object caliper = new object();
|
||||
_instance = new FormCaliper(ref caliper);
|
||||
return _instance;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
private void FormCaliper_Load(object sender, EventArgs e)
|
||||
{
|
||||
this.panel1.Controls.Add(myHwindow);
|
||||
myHwindow.Dock = DockStyle.Fill;
|
||||
InitTool();
|
||||
}
|
||||
|
||||
private void InitTool()
|
||||
{
|
||||
this.Text = myToolInfo.toolName;
|
||||
btn_runCaliperool.Focus();
|
||||
Application.DoEvents();
|
||||
// 预期设定值
|
||||
tbx_expectCenterRow.Text = myCaliper.expectRecStartRow.ToString();
|
||||
tbx_expectCenterCol.Text = myCaliper.expectRecStartColumn.ToString();
|
||||
tbx_expectPhi.Text = myCaliper.expectAngle.ToString();
|
||||
// 预期参数
|
||||
tbx_caliperLength1.Text = myCaliper.length1.ToString();
|
||||
tbx_caliperLength2.Text = myCaliper.length2.ToString();
|
||||
cbx_edgeSelect.Text = myCaliper.edgeSelect;
|
||||
cbx_polarity.Text = myCaliper.polarity == "positive" ? "从暗到明" : "从明到暗";
|
||||
tbx_threshold.Text = myCaliper.threshold.ToString();
|
||||
tbx_Sigma.Text = myCaliper.sigma.ToString();
|
||||
// 显示
|
||||
chBDispRec.Checked = myCaliper.dispRec;
|
||||
chBDispCross.Checked = myCaliper.dispCross;
|
||||
chBDispCaliperROI.Checked = myCaliper.LineDisp;
|
||||
}
|
||||
|
||||
private void btn_moveCliperRegion_Click(object sender, EventArgs e)
|
||||
{
|
||||
myCaliper.UpdateImage();
|
||||
myCaliper.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_runCaliperool_Click(object sender, EventArgs e)
|
||||
{
|
||||
// 更改界面中参数,实时更新类中参数
|
||||
myCaliper.expectRecStartRow = Convert.ToDouble(tbx_expectCenterRow.Text.Trim());
|
||||
myCaliper.expectRecStartColumn = Convert.ToDouble(tbx_expectCenterCol.Text.Trim());
|
||||
myCaliper.expectAngle = Convert.ToDouble(tbx_expectPhi.Text.Trim());
|
||||
// 运行参数
|
||||
myCaliper.threshold = Convert.ToInt16(tbx_threshold.Text.Trim());
|
||||
myCaliper.length1 = Convert.ToInt16(tbx_caliperLength1.Text.Trim());
|
||||
myCaliper.length2 = Convert.ToInt16(tbx_caliperLength2.Text.Trim());
|
||||
myCaliper.polarity = cbx_polarity.SelectedItem.ToString() == "从明到暗" ? "negative" : "positive";
|
||||
myCaliper.edgeSelect = cbx_edgeSelect.SelectedItem.ToString();
|
||||
myCaliper.sigma = Convert.ToDouble(tbx_Sigma.Text.Trim());
|
||||
myCaliper.Run();
|
||||
}
|
||||
}
|
||||
}
|
||||
205
CaliperTool/FormCaliper.resx
Normal file
205
CaliperTool/FormCaliper.resx
Normal file
@@ -0,0 +1,205 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
AAABAAEAIyAAAAEAIACoEgAAFgAAACgAAAAjAAAAQAAAAAEAIAAAAAAAgBEAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAGyU0ZFdeafFscnz/bHJ8/2xyfP9scnz/bHJ8/2xyfP9scnz/bHJ8/2xyfP9scnz/bHJ8/2xy
|
||||
fP9scnz/bHJ8/2xyfP9scnz/bHJ8/2xyfP9scnz/bHJ8/2xyfP9scnz/bHJ8/2xyfP9scnz/bHJ8/2xy
|
||||
fP9scnz/bHJ8/1dfavUcJjRsAAAAABkjMgZbYWnz+fHY//nv0f/579H/+e/R//nv0f/579H/+e/R//nv
|
||||
0f/579H/+e/R//nv0f/579H/+e/R//nv0f/579H/+e/R//nv0f/579H/+e/R//nv0f/579H/+e/R//nv
|
||||
0f/579H/+e/R//nv0f/579H/+e/R//nv0f/579H/+vHX/19lbPcZIzIIGSQzCnBvZP/p2qj/QH6T/y6H
|
||||
q/8th6v/Loer/2aLjv/15K7/9eSu//Tkrf/15K7/9eSu//Xjrf/15K7/9eSu//Xjrv/15K7/9eSt//Tj
|
||||
rf/1463/9OSu//Tkrv/15K7/9OOt//Tjrf/15K7/9eSu//Tkrv/1467/9eSu//Tkrf/0467/cnJl/xki
|
||||
Mg4ZJDMKcG9j/+fYp/9aiJb/Wpqy/1qasv9amrL/dpGQ//Xkrv/1467/9eSt//Xjrv/15K7/9eSt//Xk
|
||||
rv/05K7/9eSt//Xkrv/1463/9OOt//Xkrv/05K3/9OOt//Xkrv/0463/9eOt//Xkrv/15K7/9OSu//Xj
|
||||
rf/15K7/9OOt//Pjrf9xcGT/GSIyDhkkMwpwb2P/9OOt//Xkrv/15K7/9OOt//Tkrv/1467/9eSu//Xk
|
||||
rv/05K3/9eSu//Tkrv/1463/9eSu//Tkrv/0463/9eSu//Tjrf/05K7/9eOu//Tkrf/0467/9eSu//Tj
|
||||
rf/15K7/9eSu//Xjrf/05K7/9eSu//Xkrv/0463/cnJk/3FwZP8ZIjIOGSQzCnBvY//1463/9OSu//Xk
|
||||
rv/15K3/9OSt//Tkrv/15K7/9eSu//Xkrf/15K7/9eSu//Xkrf/1467/9eSt//Xkrv/15K3/9eOt//Tk
|
||||
rf/15K7/9OSt//Tkrv/15K7/9OOt//Tjrf/15K7/9eOu//Tkrv/1463/9eSu//Tjrf9qamD/cXBk/xki
|
||||
Mg4ZJDMKcG9j//Tjrf/15K7/9eOu//Tjrf/05K3/9eSu//Xkrv/15K7/9OSt//Xkrv/15K7/9eOt//Xk
|
||||
rv/15K7/9eOu//Xkrv/15K3/9OOt//Xjrf/05K7/9OSu//Xkrv/0463/9OOt//Xkrv/15K7/9OSu//Xj
|
||||
rv/15K7/9OSt/2pqYP9xcGT/GSIyDhkkMwpwb2P/9OOt//Xkrv/15K7/9eSt//Tjrf/15K7/9eSu//Xj
|
||||
rv/15K3/9eOu//Xkrv/15K3/9eSu//Tkrv/15K3/9eSu//Xjrf/0463/9eSu//Tkrf/0463/9eSu//Tj
|
||||
rf/1463/9eSu//Xkrv/05K7/9eOt//Xkrv/0463/vbOP/3FwZP8ZIjIOGSQzCnBvY//0463/9eSu//Xk
|
||||
rv/0463/9OSu//Xjrv/15K7/9eSu//Tkrf/15K7/9OSu//Xjrf/15K7/9OSu//Tjrf/15K7/9OOt//Tk
|
||||
rv/1467/9OSt//Tjrv/15K7/9OOt//Xkrv/15K7/9eOt//Tkrv/15K7/9eSu//Tjrf92dGb/cXBk/xki
|
||||
Mg4ZJDMKcG9j//Xjrf/05K7/9eSu//Xkrf/05K3/9OSu//Xkrv/15K7/9eSt//Xkrv/15K7/9eSt//Xj
|
||||
rv/15K3/9eSu//Xkrf/1463/9OSt//Xkrv/05K3/9OSu//Xkrv/0463/9OOt//Xkrv/1467/9OSu//Xj
|
||||
rf/15K7/9OOt/8/CmP9xcGT/GSIyDhkkMwpwb2P/9OOt//Xkrv/1467/9OOt//Tkrf/15K7/9eSu//Xk
|
||||
rv/05K3/9eSu//Xkrv/1463/8+Ks/5CMdf90c2b/dHNm/3RzZv+Gg3D/796q//Tkrv/05K7/9eSu//Tj
|
||||
rf/0463/9eSu//Xkrv/05K7/9eOu//Xkrv/05K3/9OOu/3FwZP8ZIjIOGSQzCnBvY//0463/9eSu//Xk
|
||||
rv/15K3/9OOt//Xkrv/15K7/9eOu//Xkrf/1467/9eSu//Xkrf/VyJz/S0KD/4lp6P+Jaej/iWno/1hL
|
||||
mf/EuZL/9OSt//Tjrf/15K7/9OOt//Xjrf/15K7/9eSu//Tkrv/1463/9eSu//Tjrf/05K7/cXBk/xki
|
||||
Mg4ZJDMKcG9j//Tjrf/15K7/9eSu//Tjrf/05K7/9eOu//Xkrv/15K7/9OSt//Xkrv/05K7/9eOt/9DE
|
||||
mf9TSpD/lnn+/5R3+/+WeP7/Y1Wq/8K3kf/05K3/9OOu//Xkrv/0463/9eSu//Xkrv/1463/9OSu//Xk
|
||||
rv/15K7/9OOt//Tkrv9xcGT/GSIyDhkkMwpwb2L/9OOs//TjrP/046z/9OOs//TjrP/046z/9OOs//Tj
|
||||
rP/046z/9OOs//TjrP/046z/0MOX/1NKkP+Xef//Mk16/4tx7P9jVar/wreQ//TjrP/046z/9OOs//Tj
|
||||
rP/046z/9OOs//TjrP/046z/9OOs//TjrP/046z/9OOs/3FwY/8ZIjIOGSMyPlVVQ/+woVv/sKFb/7Ch
|
||||
W/+woVv/sKFb/7ChW/+woVv/sKFb/7ChW/+woVv/sKFb/7ChW/+XjFT/U0qQ/5d5/v8oVHv/h27m/2NV
|
||||
qv+NhFL/sKFb/7ChW/+woVv/sKFb/7ChW/+woVv/sKFb/7ChW/+woVv/sKFb/7ChW/+woVv/WVlE/xkj
|
||||
MkJCRTz/iH9N/4h/Tf+If03/iH9N/4h/Tf+If03/iH9N/4h/Tf+If03/iH9N/4h/Tf+If03/iH9N/3Vw
|
||||
Sf9TSpD/cGbK/x6Drv9iY7z/Y1Wq/25qR/+If03/iH9N/4h/Tf+If03/iH9N/4h/Tf+If03/iH9N/4h/
|
||||
Tf+If03/iH9N/4h/Tf+If03/REc9/2dnWf/ZyY//wLOC/8K1g//u3Jv/w7aD/8u9h//w3p3/8N6d//De
|
||||
nf/w3p3/8N6d//Denf/w3p3/zL+L/1NKkP9Uc6//K8X3/05/tf9jVar/v7OE//Denf/w3p3/8N6d//De
|
||||
nf/w3p3/8N6d//Denf/w3p3/8N6d//Denf/w3p3/8N6d//Denf9paFn/aGhf/8W6k/+blXv/npd9/+7e
|
||||
qv+el33/rKSF//Tkrv/15K7/9eSu//Xkrf/15K7/9eSu//Xkrf/QxJn/U0qQ/4Jr2v+Hf7j/gWzW/2NV
|
||||
qv/Ct5H/9OSt//Tkrv/15K7/9OOt//Tjrf/15K7/9eOu//Tkrv/1463/9eSu//Tjrf/15K7/9OOt/2lp
|
||||
X/9oaF//9eSu//Tjrf/15K7/9eOu//Tjrf/05K3/9eSu//Xkrv/15K7/9OSt//Xkrv/15K7/9eOt/9DE
|
||||
mf9VTZH/mHv+/5h7//+Ye///ZVir/8K3kf/05K7/9OSu//Xkrv/0463/9OOt//Xkrv/15K7/9OSu//Xj
|
||||
rv/15K7/9OSt//Tjrv/15K7/aWlf/2hoX//15K7/9OOt//Xkrv/15K7/9eSt//Tjrf/15K7/9eSu//Xj
|
||||
rv/15K3/9eOu//Xkrv/15K3/6Nmn/1RZX/9pbnz/aW58/2lufP9SWGH/282f//Tkrf/0463/9eSu//Tj
|
||||
rf/1463/9eSu//Xkrv/05K7/9eOt//Xkrv/0463/9OSu//Tjrv9paV//aGhf//Xkrv/0463/9eSu//Xk
|
||||
rv/0463/9OSu//Xjrv/15K7/9eSu//Tkrf/15K7/9OSu//Xjrf/15K7/9OSu//Tjrf/15K7/9OOt//Tk
|
||||
rv/1467/9OSt//Tjrv/15K7/9OOt//Xkrv/15K7/9eOt//Tkrv/15K7/9eSu//Tjrf/05K7/9OSu/2lp
|
||||
X/9oaF//9OSu//Xjrf/05K7/9eSu//Xkrf/05K3/9OSu//Xkrv/15K7/9eSt//Xkrv/15K7/9eSt//Xj
|
||||
rv/15K3/9eSu//Xkrf/1463/9OSt//Xkrv/05K3/9OSu//Xkrv/0463/9OOt//Xkrv/1467/9OSu//Xj
|
||||
rf/15K7/9OOt//Xkrv/0463/aWlf/2lqYv/15K7/9OOt//Xkrv/1467/9OOt//Tkrf/15K7/9eSu//Xk
|
||||
rv/05K3/9eSu//Xkrv/1463/9eSu//Xkrv/1467/9eSu//Xkrf/0463/9eOt//Tkrv/05K7/9eSu//Tj
|
||||
rf/0463/9eSu//Xkrv/05K7/9eOu//Xkrv/05K3/9OOu//Xkrv9rbGT/Q0tX4fDs3v/79eH/+/Xh//v1
|
||||
4f/79eH/+/Xh//v14f/79eH/+/Xh//v14f/79eH/+/Xh//v14f/79eH/+/Xh//v14f/79eH/+/Xh//v1
|
||||
4f/79eH/+/Xh//v14f/79eH/+/Xh//v14f/79eH/+/Xh//v14f/79eH/+/Xh//v14f/79eH/8+7g/0hP
|
||||
W+UZIzM0KjNBtz9IVMk/SFTJP0hUyT9IVMk/SFTJP0hUyTlFU/M3WXL/OkNQ6T9HVMs/R1TLP0dUyz9H
|
||||
VMs/R1TLP0dUyz9HVMs/R1TLP0dUyz9HVMs/R1TLP0dUyz9HVMs6Q0/pN1lx/zhFVPU/SFTJP0hUyT9I
|
||||
VMk/SFTJP0hUyT9IVMkqM0G5GSMzNgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGjRIyRu3
|
||||
7f8aJDOZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABoj
|
||||
M5cbseb/Gj1TzQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAaNEjJG7nu/xokM5kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAGSQzlxuz5v8aPVPNAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABo0R8kbue7/GiQzmwAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaJDOXG7Xo/xo7UM0AAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGig4rR25
|
||||
7P8aOU7XGiQzBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGSMyBho2
|
||||
Ss8duu7/Gio7swAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAZJDNcOo+v/xuTwP8ZMUbBGSMyhRokM4MZIzKDGiMzgxokM4MaJDODGiQzgxoj
|
||||
M4MZIzODGSQzgxkjMoUZMEW/G5C7/zyUtf8aJDNiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABkjMgQtN0W7cbHI/0zC7v8xqNj/MKbX/zCm
|
||||
1/8wptf/MKbX/zCm1/8wptf/MKbX/zCm1/8wptf/MafX/0vB7v9xs8v/LzpHvxkjMgYAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABkk
|
||||
MgoeKDeHUlll5Wlxe/1qcnz/anJ8/2pyfP9qcnz/anJ8/2pyfP9qcnz/anJ8/2pyfP9qcXv9U1pm5x8o
|
||||
N4kZIzIKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAGAAAACAAAAAIAAAAIAA
|
||||
AAAgAAAAgAAAACAAAACAAAAAIAAAAIAAAAAgAAAAgAAAACAAAACAAAAAIAAAAIAAAAAgAAAAgAAAACAA
|
||||
AACAAAAAIAAAAIAAAAAgAAAAgAAAACAAAACAAAAAIAAAAIAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAACAA
|
||||
AAD/H/8f4AAAAP8f/x/gAAAA/x//H+AAAAD/H/8f4AAAAP+AAD/gAAAA/4AAP+AAAAD/wAB/4AAAAA==
|
||||
</value>
|
||||
</data>
|
||||
</root>
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
CaliperTool/bin/Debug/HalconWindow.exe
Normal file
BIN
CaliperTool/bin/Debug/HalconWindow.exe
Normal file
Binary file not shown.
BIN
CaliperTool/bin/Debug/HalconWindow.pdb
Normal file
BIN
CaliperTool/bin/Debug/HalconWindow.pdb
Normal file
Binary file not shown.
BIN
CaliperTool/bin/Debug/ToolBase.dll
Normal file
BIN
CaliperTool/bin/Debug/ToolBase.dll
Normal file
Binary file not shown.
BIN
CaliperTool/bin/Debug/ToolBase.pdb
Normal file
BIN
CaliperTool/bin/Debug/ToolBase.pdb
Normal file
Binary file not shown.
BIN
CaliperTool/obj/Debug/CaliperTool.FormCaliper.resources
Normal file
BIN
CaliperTool/obj/Debug/CaliperTool.FormCaliper.resources
Normal file
Binary file not shown.
Binary file not shown.
BIN
CaliperTool/obj/Debug/CaliperTool.csproj.GenerateResource.Cache
Normal file
BIN
CaliperTool/obj/Debug/CaliperTool.csproj.GenerateResource.Cache
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user