halcon拟合直线

read_image (hImage, 'E:/vs2012/halcon卡尺例程/白光碗光效果4.bmp')
get_image_pointer1(hImage, Pointer, Type, Width, Height)
*功能:获取一个通道的指针,得到HTuple  Pointer, Type, CurWidth, CurHeight
dev_set_draw('margin')
dev_set_color ('green')****************************************
* 卡尺---X轴
****************************************
*找边参数:长度m_dMeasureHeight ,滤波m_dMeasureSmooth ,对比度m_dMeasureContrast
draw_rectangle1(3600, Row1, Column1, Row2, Column2)
gen_rectangle1(Rectangle, Row1, Column1, Row2, Column2)
XResultRows:=[]
XResultCols:=[]
k:=0
*头文件---声明,定义变量
for Coli := Column1 to Column2 by 5                                    dLen := (Row2-Row1)/2dCol := ColidRow := (Row1+Row2)/2dPhi:=rad(90)m_dMeasureHeight:=5        m_dMeasureSmooth:=2m_dMeasureContrast:=60gen_rectangle2(Rect, dRow, dCol, dPhi, dLen, m_dMeasureHeight)gen_measure_rectangle2(dRow,dCol,dPhi,dLen,m_dMeasureHeight, Width, Height,'nearest_neighbor', tMeasureHandle)*measure_pos (hImage, tMeasureHandle, m_dMeasureSmooth, m_dMeasureContrast, 'positive', 'last', tTempRow, tTempCol, NULL, NULL)
*功能:提取与矩形或环状弧垂直的直线边缘 ,last/positive和first/negative决定了找边的方向? 极性选择:暗到亮   measure_pos (hImage, tMeasureHandle, m_dMeasureSmooth, m_dMeasureContrast, 'negative', 'first', tTempRow, tTempCol, NULL, NULL)
*极性选择:亮到暗    if( |tTempRow|=1) XResultRows:=[XResultRows,tTempRow]XResultCols:=[XResultCols,tTempCol]k:=k+1endifclose_measure(tMeasureHandle)
endfor
stop ()
if (k>=30)dev_display(hImage)gen_contour_polygon_xld(hHoleContour,XResultRows,XResultCols)
*功能:根据区域创建 XLD轮廓(contour)   fit_line_contour_xld(hHoleContour, 'tukey', -1, 0, 5, 2, XRowBegin, XColBegin, XRowEnd, XColEnd, XNr, XNc, XDist)
*功能:根据分割线近似获取 XLD轮廓(contour)    XCStart := 0XRStart := XDist/XNr    XCEnd := WidthXREnd := (XDist - (XCEnd * XNc))/XNrdev_display(hImage)gen_contour_polygon_xld (XContour, [XRStart,XREnd], [XCStart,XCEnd])
*     gen_region_line(XLine, XRStart, XCStart, XREnd, XCEnd)*********输出X轴角度 *********angle_ll(0, 0, 0, Width, XRStart, XCStart, XREnd, XCEnd, XAngle)
*功能:计算两条线的夹角
elseset_tposition(3600, 100, 100)write_string(3600, '找边失败')
endif****************************************
* 卡尺---Y轴
****************************************
draw_rectangle1(3600, Row1, Column1, Row2, Column2)
gen_rectangle1(Rectangle, Row1, Column1, Row2, Column2)
YResultRows:=[]
YResultCols:=[]
k:=0
for Rowi := Row1 to Row2 by 5                                      dLen := (Column2-Column1)/2dRow := RowidCol := (Column1+Column2)/2dPhi:=0m_dMeasureHeight:=5      m_dMeasureSmooth:=2m_dMeasureContrast:=60gen_rectangle2(Rect, dRow, dCol, dPhi, dLen, m_dMeasureHeight)gen_measure_rectangle2(dRow,dCol,dPhi,dLen,m_dMeasureHeight, Width, Height,'nearest_neighbor', tMeasureHandle)measure_pos (hImage, tMeasureHandle, m_dMeasureSmooth, m_dMeasureContrast, 'positive', 'last', tTempRow, tTempCol, NULL, NULL)     if( |tTempRow|=1)  YResultRows:=[YResultRows,tTempRow]YResultCols:=[YResultCols,tTempCol]k:=k+1endifclose_measure(tMeasureHandle)
endfor
stop ()
if (k>=30)dev_display(hImage)gen_contour_polygon_xld(hHoleContour,YResultRows,YResultCols)fit_line_contour_xld(hHoleContour, 'tukey', -1, 0, 5, 2, YRowBegin, YColBegin, YRowEnd, YColEnd, YNr, YNc, YDist)YRStart := 0YCStart := YDist/YNc    YREnd := HeightYCEnd := (YDist - (YREnd * YNr))/YNcdev_display(hImage)gen_contour_polygon_xld (YContour, [YRStart,YREnd], [YCStart,YCEnd])
*     gen_region_line(YLine, YRStart, YCStart, YREnd, YCEnd)***输出Y轴角度angle_ll(0, 0, 0, Width, YRStart, YCStart, YREnd, YCEnd, YAngle)
elseset_tposition(3600, 100, 100)write_string(3600, '找边失败')
endifphi:=XAngle-YAngle
angle:=deg(phi)
*求交点
dev_display(hImage)
dev_display (XContour)
dev_display (YContour)
dev_set_color('red')
intersection_ll (YRStart, YCStart, YREnd, YCEnd, XRStart, XCStart, XREnd, XCEnd, Row, Column, IsParallel)
*功能:计算两条线的交集点(相交点)
gen_circle_contour_xld(ContCircle, Row, Column, 20, 0, 6.28318, 'positive', 1)
* dev_set_color ('green')
* intersection (YLine, XLine, RegionIntersection)
* area_center (RegionIntersection, Area, Row0, Column0)
* gen_cross_contour_xld(Cross0, Row0, Column0, 60, 0)————————————————
版权声明:本文为CSDN博主「小邢同学」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/cashmood/article/details/111629885

halcon拟合直线相关推荐

  1. halcon已知多点拟合圆_Halcon拟合圆spoke、拟合直线算子rake 用于测量 【开源版下载】...

    51Halcon诚邀您的加入,专注于机器视觉开发与应用技术,我们一直都在努力! 您需要 登录 才可以下载或查看,没有帐号?会员注册 x 原826工作室鸟叔真情奉献 Halcon拟合圆Spoke.拟合直 ...

  2. 【Halcon视觉】图像拟合直线

    在机器视觉领域,常见的应用场景是工业.如:手机制造,汽车制造,等等.在这些零部件生产加工时,需要对工件进行定位.通过工件的边缘,拟合直线,可实现获取工件的坐标位置. XLD分割:在获取亚像素轮廓后,需 ...

  3. Halcon自定义直线卡尺rake

    拟合直线 rake工具 1. 为什么要开发rake工具 2. rake工具封装的三个函数 2.1 创建ROI的函数:draw_rake 2.2 边缘测量的函数:rake 2.3 拟合直线的函数:pts ...

  4. 基于halcon的直线查找之卡尺

    我这人比较懒得罗里吧嗦,基本都是直接说两点:why?how? 基于halcon的直线查找之卡尺 直线的检测在halcon中主要有两种方式:直线拟合和卡尺直线.这里分享卡尺方法,拟合请移步:直线拟合 直 ...

  5. python椭圆拟合_opencv python 轮廓特征/凸包/外接矩形/外接圆/拟合矩形/拟合直线/拟合圆...

    Contour Features 1 图像的矩 cv2.moments() 图像的矩可以帮助计算物体的某些特征,如对象的质心,对象的区域等. 代码: import cv2 import numpy a ...

  6. OpenCV_11 轮廓检测:图像的轮廓+绘制轮廓+轮廓近似+边界矩形+椭圆拟合+直线拟合

    1 图像的轮廓 轮廓可以简单认为成将连续的点(连着边界)连在一起的曲线,具有相同的颜色或者灰度.轮廓是图像目标的外部特征,这种特征对于我们进行图像分析,目标识别和理解等更深层次的处理都有很重要的意义. ...

  7. c++ opencv fitLine函数拟合直线

    c++ opencv fitLine函数拟合直线 fitLine 函数 void fitLine( InputArray points, OutputArray line, int distType, ...

  8. Python-Opencv fitLine 拟合直线

    转自: output = cv2.fitLine(InputArray points, distType, param, reps, aeps) 参数: InputArray Points: 待拟合的 ...

  9. OpenCV实战——拟合直线

    OpenCV实战--拟合直线 0. 前言 1. 直线拟合 2. 完整代码 相关链接 0. 前言 在某些计算机视觉应用中,不仅要检测图像中的线条,还要准确估计线条的位置和方向.本节将介绍如何找到最适合给 ...

最新文章

  1. iOS下拉tableView实现上面的图片放大效果
  2. Python中fnmatch模块的使用
  3. 计算机网络(网络层,运输层和应用层的一些tips)
  4. 网站down掉后,自动发信的shell
  5. linux应用程序启动时加载库错误问题
  6. 在Mac下配置Appium环境
  7. eclipse无法运行PHP_eclipse 无法运行php文件怎么办
  8. 【NLP】XLNet详解
  9. BZOJ1123: [POI2008]BLO
  10. java graham_Graham Scan凸包算法
  11. 【机器人算法】机器人运动学参数辨识/DH参数校准/DH参数辨识
  12. 三星note升级android9,三星Note9官方台版安卓9固件rom升级更新包:BRI-N960FXXS3CSI5
  13. dell服务器uefi启动u盘安装系统,uefi启动u盘安装系统怎么装|uefi u盘启动装系统步骤...
  14. 数值分析(12):Rung-Kutta法及单步法的收敛性和稳定性分析
  15. php 商品多规格的实现,sku实现
  16. C语言中?:代表什么意思
  17. html常见盒子居中小结
  18. 一个研究生学历到底值多少钱?为什么现在那么多人选择在职考研?
  19. 安装windows2000操作系统的详细步骤
  20. centos,nodejs升级+GLIBC升级

热门文章

  1. 将视频托管到爱奇艺 (第一步)
  2. [CMU 15-445] 08 树索引 -Ⅱ
  3. 西安网站建设哪家好?
  4. 开放打造企业未来之路
  5. 利用高中知识求解最小二乘法
  6. 电商首页、支付功能测试要点
  7. Flutter-UI- 阴影(BoxShadow)、 间距(padding)、 Align
  8. 秒懂脏读、幻读、不可重复读
  9. 贫穷限制想象:3460家上市公司高管年薪大赏
  10. 比较DVI端口和VGA端口