这个文章介绍的找线方式是使用算子measure_pos来工作的,因此这种方式适合halcon及以上版本。
在找线的时候,先使用gen_measure_rectangle2设置测量的矩形句柄,然后再执行measure_pos算子,如下面的代码所示:
产生测量矩形句柄,控制输入为测量矩形范围的坐标中心,矩形长轴和水平方向夹角范围的弧度,矩形边长的一半,测量图片的宽和高度,输出为测量句柄。
Row, Column是矩形的中心Length1, Length2是矩形区域的长和宽的一半,关于区域的宽度,尽量在包住边缘的同时设置的越大越好,因为设置的太小噪声太大Phi是Rectangle旋转的角度,当为正时表示逆时针旋转,当为负时表示顺时针旋转如果想看ROI是否合适可以利用gen_rectangle1查看Interpolation表示插值的方法,因为当ROI不是垂直或者水平的话,那么他的Projection(下图中短的等距线)经过的就不是一个完整的像素,因为要计算它的平均值给Profile。它的值就需要插值。
以前 我理解边缘幅度值边缘处渐变的灰度差值,但现在看来这个理解是不准确的,应该是边缘灰度值变化的趋势,因为由黑到白(小变大)和由白到黑(大变小) 在图形中反映出幅度为负和正;因此可以理解这个幅度值是有正负的;
Threshold是对他的一阶导数设置的阈值。这个理解比较不容易,可以暂时理解为你选取的幅度阈值下限。
Transition = ‘negative’时表示由像素值高转到低像素值的边缘放在RowEdgeFirst中,这里有一个参考方向,就是Rectangle旋转角度为0时,从左到右的方向。另一解释:沿主轴方向dark-to-light定义为第一类边缘,反之为第二类边缘。
Transition=‘positive’ 代表找寻所有正边缘 :所谓正边缘即为在查找方向上从黑到白过渡变化的边缘;
Transition=‘negative’ 代表找寻所有负边缘 :所谓负边缘即为在查找方向上从白到黑过渡变化的边缘;
1.构造测量对象——建立测量区域2.剖面线计算——做灰度值平均投影3.剖面线光滑——消除噪声4.剖面线.局部极值/边缘
在这里,我们看到底边突出来的部分,由于其点数相对于总点数150较少,所以最终拟合线条时被舍弃掉那部分点。
检查一下网线,质量不好的网线会降速运行。再检查一下网卡设置相关,特别是过滤器。最后检查相机本身的默认设置,如曝光之类的。还不行那就奇怪了。
netMarketing.Net.SocketComm.ReaderMethod.ServerSendMessage 这个里面传输的长度有限制吗?我传输了一个json串,长度大概有5000个字符,客户端接收的时候发现 传输过来了 几次,而且都是被截断的内容。
我用500万的basler相机,用你整理的sdk,取图时间是102ms,难道时型号不一样,我的型号:acA3800-10gm
好久以前就研究过wireshark了,那个时候只是有来抓网络上的http协议,你可以看看。


