halcon一维测量

halcon的一维测量核心步骤如下:
1.通过一个矩形ROI创建测量对象,他的ROI是一个Rect2矩形,将在这个矩形phi方向上测量。
2.调用单个尺寸测量或多个尺寸测量。
3.关闭测量对象。

代码如下:
void  TestProc1D( QWidget  * w )
{
                  QSize  size =  w  ->size();
                  HWindow  * display =  new  HWindow (0,0,size.width(),size.height(),(  HWND ) w  ->winId(), "" ,  "" );

                  HImage  image;
                image.ReadImage(  "F:/image/ic_pin.png" );
                  Hlong  width,height;
                image.GetImageSize(&width,&height);
                display->SetPart(0,0,height,width);
                display->DispImage(image);

                  double  row,col,phi,lenght1,lenght2;
                display->DrawRectangle2(&row,&col,&phi,&lenght1,&lenght2);

                  HMeasure  measure(row,col,phi,lenght1,lenght2,image.Width(),image.Height(), "nearest_neighbor" );
                  HTuple  rowEdge,colEdge,amps,distances;
                measure.MeasurePos(image,1,30,  "all" , "all"  ,&rowEdge,&colEdge,&amps,&distances);
                display->DispLine(rowEdge,colEdge-lenght2,rowEdge,colEdge+lenght2);

                  Hlong  n = distances.Length();
                  qDebug () <<  "count : "  << n;
                  for ( Hlong  i=0; i<n; i++)
                {
                                  qDebug () << distances[i].D() <<  ";" ;
                }

                  //display->DrawRectangle2(&row,&col,&phi,&lenght1,&lenght2);
                display->DrawPoint(&row,&col);
                measure.TranslateMeasure(row,col);

                measure.MeasurePos(image,1,30,  "all" , "all"  ,&rowEdge,&colEdge,&amps,&distances);
                display->DispLine(rowEdge,colEdge-lenght2,rowEdge,colEdge+lenght2);

                n = distances.Length();
                  qDebug () <<  "count : "  << n;
                  for ( Hlong  i=0; i<n; i++)
                {
                                  qDebug () << distances[i].D() <<  ";" ;
                }
}

这里核心调用了 MeasurePos这个函数,还有另外一个函数 MeasurePair这两个函数的功能相同,只是输出结果的形式不同, MeasurePair的数据时配对输出的。在实际使用中需要调整 MeasurePos函数的参数满足测试需求,核心的是一个阈值和一个模糊化因子。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wolfseek

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值