在视觉调试的时候,如果断点查看Linef对象的Points信息(即线的点集合),都是包含点位置x,y信息的数据,有些时候想显示Linef对象的points信息为图形化,则可以使用下面的小程序。
你只需要vs的“即时窗口”输出这个Points对象,然后把它复制下来,粘贴到程序窗体中,然后点击“计算窗口内points”转换即可。
下面的复制下来的Points对象:
[0]: {4086.82373046875,1817.00036621094,0,0}
[1]: {4086.76611328125,1845.00036621094,0,0}
[2]: {4086.21850585938,1874.00036621094,0,0}
[3]: {4085.49389648438,1902.00024414063,0,0}
[4]: {4084.75708007813,1931.00024414063,0,0}
[5]: {4083.83666992188,1959.00024414063,0,0}
[6]: {4082.8125,1988.00024414063,0,0}
[7]: {4052.86499023438,2016.00024414063,0,0}
[8]: {4051.03979492188,2045.00012207031,0,0}
[9]: {4049.4716796875,2073.00024414063,0,0}
[10]: {4048.08666992188,2102.00024414063,0,0}
[11]: {4047.00903320313,2130.00024414063,0,0}
[12]: {4046.07202148438,2159.00024414063,0,0}
[13]: {4045.2900390625,2187.00024414063,0,0}
[14]: {4044.646484375,2216.00024414063,0,0}
[15]: {4044.02661132813,2244.00024414063,0,0}
[16]: {4043.42919921875,2272.00024414063,0,0}
[17]: {4042.57739257813,2301.00024414063,0,0}
[18]: {4041.91528320313,2329.00024414063,0,0}
[19]: {4042.28564453125,2358.00024414063,0,0}
[20]: {4042.7216796875,2386.00024414063,0,0}
[21]: {4042.83325195313,2415.00024414063,0,0}
[22]: {4042.90356445313,2443.00024414063,0,0}
[23]: {4042.96875,2472.00024414063,0,0}
[24]: {4043.00366210938,2500.00024414063,0,0}
[25]: {4043.0244140625,2529.00024414063,0,0}
[26]: {4043.037109375,2557.00024414063,0,0}
[27]: {4043.04931640625,2586.00024414063,0,0}
[28]: {4043.02783203125,2614.00024414063,0,0}
[29]: {4042.99267578125,2643.00024414063,0,0}
[30]: {4042.9228515625,2671.00024414063,0,0}
[31]: {4042.82861328125,2700.00024414063,0,0}
[32]: {4042.712890625,2728.00024414063,0,0}
[33]: {4042.55932617188,2757.00024414063,0,0}
[34]: {4042.3408203125,2785.00024414063,0,0}
[35]: {4042.1298828125,2814.00024414063,0,0}
[36]: {4041.90673828125,2842.00024414063,0,0}
[37]: {4041.62475585938,2870.00024414063,0,0}
[38]: {4041.28540039063,2899.00024414063,0,0}
[39]: {4040.95678710938,2927.00024414063,0,0}
[40]: {4040.55200195313,2956.00024414063,0,0}
[41]: {4040.18188476563,2984.00024414063,0,0}
[42]: {4039.8447265625,3013.00024414063,0,0}
[43]: {4039.36401367188,3041.00024414063,0,0}
[44]: {4038.93774414063,3070.00024414063,0,0}
[45]: {4038.59497070313,3098.00024414063,0,0}
[46]: {4038.25073242188,3127.00024414063,0,0}
[47]: {4038.02661132813,3155.00024414063,0,0}
[48]: {4037.79370117188,3184.00024414063,0,0}
[49]: {4037.41552734375,3212.00024414063,0,0}
[50]: {4036.80419921875,3241.00024414063,0,0}
[51]: {4036.58471679688,3269.00024414063,0,0}
[52]: {4036.79370117188,3298.00024414063,0,0}
[53]: {4037.07592773438,3326.00024414063,0,0}
[54]: {4037.90380859375,3355.00024414063,0,0}
[55]: {4038.87963867188,3383.00024414063,0,0}
[56]: {4039.92163085938,3412.00024414063,0,0}
[57]: {4041.08618164063,3440.00024414063,0,0}
[58]: {4042.7470703125,3469.00024414063,0,0}
[59]: {4044.57006835938,3497.00024414063,0,0}
[60]: {4080.923828125,3525.00024414063,0,0}
[61]: {4080.77563476563,3554.00024414063,0,0}
[62]: {4081.08935546875,3582.00024414063,0,0}
[63]: {4081.5693359375,3611.00024414063,0,0}
[64]: {4081.81298828125,3639.00024414063,0,0}
[65]: {4081.75463867188,3668.00024414063,0,0}下面的软件转换后的halcon代码:
gen_circle(Circle, 86.82373046875, 17.00036621094, 2) gen_circle(Circle, 86.76611328125, 45.00036621094, 2) gen_circle(Circle, 86.21850585938, 74.00036621094, 2) gen_circle(Circle, 85.49389648438, 102.00024414063, 2) gen_circle(Circle, 84.75708007813, 131.00024414063, 2) gen_circle(Circle, 83.83666992188, 159.00024414063, 2) gen_circle(Circle, 82.8125, 188.00024414063, 2) gen_circle(Circle, 52.86499023438, 216.00024414063, 2) gen_circle(Circle, 51.03979492188, 245.00012207031, 2) gen_circle(Circle, 49.4716796875, 273.00024414063, 2) gen_circle(Circle, 48.08666992188, 302.00024414063, 2) gen_circle(Circle, 47.00903320313, 330.00024414063, 2) gen_circle(Circle, 46.07202148438, 359.00024414063, 2) gen_circle(Circle, 45.2900390625, 387.00024414063, 2) gen_circle(Circle, 44.646484375, 416.00024414063, 2) gen_circle(Circle, 44.02661132813, 444.00024414063, 2) gen_circle(Circle, 43.42919921875, 472.00024414063, 2) gen_circle(Circle, 42.57739257813, 501.00024414063, 2) gen_circle(Circle, 41.91528320313, 529.00024414063, 2) gen_circle(Circle, 42.28564453125, 558.00024414063, 2) gen_circle(Circle, 42.7216796875, 586.00024414063, 2) gen_circle(Circle, 42.83325195313, 615.00024414063, 2) gen_circle(Circle, 42.90356445313, 643.00024414063, 2) gen_circle(Circle, 42.96875, 672.00024414063, 2) gen_circle(Circle, 43.00366210938, 700.00024414063, 2) gen_circle(Circle, 43.0244140625, 729.00024414063, 2) gen_circle(Circle, 43.037109375, 757.00024414063, 2) gen_circle(Circle, 43.04931640625, 786.00024414063, 2) gen_circle(Circle, 43.02783203125, 814.00024414063, 2) gen_circle(Circle, 42.99267578125, 843.00024414063, 2) gen_circle(Circle, 42.9228515625, 871.00024414063, 2) gen_circle(Circle, 42.82861328125, 900.00024414063, 2) gen_circle(Circle, 42.712890625, 928.00024414063, 2) gen_circle(Circle, 42.55932617188, 957.00024414063, 2) gen_circle(Circle, 42.3408203125, 985.00024414063, 2) gen_circle(Circle, 42.1298828125, 1014.00024414063, 2) gen_circle(Circle, 41.90673828125, 1042.00024414063, 2) gen_circle(Circle, 41.62475585938, 1070.00024414063, 2) gen_circle(Circle, 41.28540039063, 1099.00024414063, 2) gen_circle(Circle, 40.95678710938, 1127.00024414063, 2) gen_circle(Circle, 40.55200195313, 1156.00024414063, 2) gen_circle(Circle, 40.18188476563, 1184.00024414063, 2) gen_circle(Circle, 39.8447265625, 1213.00024414063, 2) gen_circle(Circle, 39.36401367188, 1241.00024414063, 2) gen_circle(Circle, 38.93774414063, 1270.00024414063, 2) gen_circle(Circle, 38.59497070313, 1298.00024414063, 2) gen_circle(Circle, 38.25073242188, 1327.00024414063, 2) gen_circle(Circle, 38.02661132813, 1355.00024414063, 2) gen_circle(Circle, 37.79370117188, 1384.00024414063, 2) gen_circle(Circle, 37.41552734375, 1412.00024414063, 2) gen_circle(Circle, 36.80419921875, 1441.00024414063, 2) gen_circle(Circle, 36.58471679688, 1469.00024414063, 2) gen_circle(Circle, 36.79370117188, 1498.00024414063, 2) gen_circle(Circle, 37.07592773438, 1526.00024414063, 2) gen_circle(Circle, 37.90380859375, 1555.00024414063, 2) gen_circle(Circle, 38.87963867188, 1583.00024414063, 2) gen_circle(Circle, 39.92163085938, 1612.00024414063, 2) gen_circle(Circle, 41.08618164063, 1640.00024414063, 2) gen_circle(Circle, 42.7470703125, 1669.00024414063, 2) gen_circle(Circle, 44.57006835938, 1697.00024414063, 2) gen_circle(Circle, 80.923828125, 1725.00024414063, 2) gen_circle(Circle, 80.77563476563, 1754.00024414063, 2) gen_circle(Circle, 81.08935546875, 1782.00024414063, 2) gen_circle(Circle, 81.5693359375, 1811.00024414063, 2) gen_circle(Circle, 81.81298828125, 1839.00024414063, 2) gen_circle(Circle, 81.75463867188, 1868.00024414063, 2)

在halcon中,先打开一张原图,然后把上面的代码复制到后面。即可以画出点的位置。
源码如下:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using netMarketing.http;
namespace pointsxy
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
try
{
OpenFileDialog openfile = new OpenFileDialog();
//初始显示文件目录
//openfile.InitialDirectory = @"";
openfile.Title = "请points文件";
//过滤文件类型
openfile.Filter = "文本文件|*.txt";
if (DialogResult.OK == openfile.ShowDialog())
{
//将选择的文件的全路径赋值给文本框
richTextBox1.Text = work(File.ReadAllText(openfile.FileName),
double.Parse( tbXsub.Text),double.Parse(tbYsub.Text));
}
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
}
private string work(string txt,double xsub,double ysub)
{
var sb1 = new StringBuilder();
var dataYx=new List<Tuple<string,string>>();
var rowsAry=txt.Split(new string[] { "\n" }, StringSplitOptions.RemoveEmptyEntries);
foreach(var m in rowsAry)
{
var tmp=httpExterend.getAllMidString(m, "{", "}");
if(tmp.Count>=1)
{
var tmp2= tmp[0].Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries);
if (tmp2.Count() >= 2)
{
var ysubStr = (double.Parse(tmp2[0]) - ysub).ToString();
var xsubStr = (double.Parse(tmp2[1]) - xsub).ToString();
dataYx.Add(new Tuple<string, string>(ysubStr, xsubStr));
sb1.Append(string.Format("gen_circle(Circle, {0}, {1}, 2)\r\n", ysubStr, xsubStr));
}
}
}
return sb1.ToString();
}
private void button2_Click(object sender, EventArgs e)
{
richTextBox1.Text = work(richTextBox1.Text,
double.Parse(tbXsub.Text), double.Parse(tbYsub.Text));
}
}
}---------------------
作者:hackpig
来源:www.skcircle.com
本文出自勇哥的网站《少有人走的路》wwww.skcircle.com,转载请注明出处!讨论可扫码加群:



少有人走的路

















