您的位置:首页 > 其它

halcon一维测量

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

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

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

[align=left] double row,col,phi,lenght1,lenght2;[/align]
[align=left] display->DrawRectangle2(&row,&col,&phi,&lenght1,&lenght2);[/align]

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

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

[align=left] //display->DrawRectangle2(&row,&col,&phi,&lenght1,&lenght2);[/align]
[align=left] display->DrawPoint(&row,&col);[/align]
[align=left] measure.TranslateMeasure(row,col);[/align]

[align=left] measure.MeasurePos(image,1,30, "all","all" ,&rowEdge,&colEdge,&s,&distances);[/align]
[align=left] display->DispLine(rowEdge,colEdge-lenght2,rowEdge,colEdge+lenght2);[/align]

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

[align=left]这里核心调用了MeasurePos这个函数,还有另外一个函数MeasurePair这两个函数的功能相同,只是输出结果的形式不同,MeasurePair的数据时配对输出的。在实际使用中需要调整MeasurePos函数的参数满足测试需求,核心的是一个阈值和一个模糊化因子。[/align]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: