halcon 中有很多算子可以求出直线的倾斜角度,如下:
smallest_rectangle2(Regions : : : Row, Column, Phi, Length1, Length2)

最小外接矩形的长轴与图像坐标系x轴的夹角(-pi/2 < Phi <= pi/2),
x轴起逆时针时角度为正,顺时针时角度为负。

orientation_region(Regions : : : Phi)
计算一个区域的方向。(- pi <= Phi < pi)

elliptic_axis(Regions : : : Ra, Rb, Phi) 的讲解参考:
计算等效椭圆的方向。(- pi / 2 < Phi <= pi / 2)
orientation_region的计算方法是基于elliptic_axis的。详细区别可以参考:

https://blog.csdn.net/qq_31112205/article/details/89313421

angle_lx( : : Row1, Column1, Row2, Column2 : Angle)
计算线与水平轴间的夹角
逆时针旋转向量到水平轴的角度即为结果值,该结果取决于两个点的顺序,用弧度表示,范围为- pi <= Phi < pi

图片源自 http://www.skcircle.com/?id=589

line_orientation( : : RowBegin, ColBegin, RowEnd, ColEnd : Phi)
计算线的角度(-pi/2 < Phi <= pi/2)

line_position( : : RowBegin, ColBegin, RowEnd, ColEnd : RowCenter, ColCenter, Length, Phi)
计算线的重心,长度,角度(-pi/2 < Phi <= pi/2)

测试程序如下:

gen_region_line (lineX, 20, 110,200, 110)
gen_region_line (lineY, 110, 50,110, 170)
gen_region_line (Rectangle, 50, 170,170, 50)
* gen_region_line (Rectangle, 42, 69, 178, 150)
smallest_rectangle2 (Rectangle, Row, Column, Phi1, Length1, Length2)
orientation_region (Rectangle, Phi2)
elliptic_axis (Rectangle, Ra, Rb, Phi3)
angle_lx (50, 170,170, 50, Phi4)
line_orientation (50, 170,170, 50, Phi5)
line_position (50, 170,170, 50, RowCenter, ColCenter, Length, Phi6)hom_mat2d_identity (HomMat2DIdentity)
hom_mat2d_rotate (HomMat2DIdentity, Phi1, Row, Column, HomMat2DRotate)
affine_trans_region (Rectangle, RegionAffine1, HomMat2DRotate, 'nearest_neighbor')hom_mat2d_rotate (HomMat2DIdentity, Phi2, Row, Column, HomMat2DRotate)
affine_trans_region (Rectangle, RegionAffine2, HomMat2DRotate, 'nearest_neighbor')hom_mat2d_rotate (HomMat2DIdentity, Phi3, Row, Column, HomMat2DRotate)
affine_trans_region (Rectangle, RegionAffine3, HomMat2DRotate, 'nearest_neighbor')hom_mat2d_rotate (HomMat2DIdentity, Phi4, Row, Column, HomMat2DRotate)
affine_trans_region (Rectangle, RegionAffine4, HomMat2DRotate, 'nearest_neighbor')hom_mat2d_rotate (HomMat2DIdentity, Phi5, Row, Column, HomMat2DRotate)
affine_trans_region (Rectangle, RegionAffine5, HomMat2DRotate, 'nearest_neighbor')hom_mat2d_rotate (HomMat2DIdentity, Phi6, Row, Column, HomMat2DRotate)
affine_trans_region (Rectangle, RegionAffine6, HomMat2DRotate, 'nearest_neighbor')

经过测试,如图中倾斜方式时,只有angle_lx方法得出角度值不一样,将参数中的起点坐标和终点坐标调换后,得出的角度值均一致,再次证明两点的顺序会影响角度值。
经仿射变换后,使用angle_lx得出的角度使直线向左偏移一个像素的位置。

测试2:

从上图中发现,该倾斜角度直线,经过不同算子得出的角度值有些差异,但是为什么会有差异,也没搞明白。经过仿射变换后,无差别。

halcon 中几种求直线倾斜角度的算子分析相关推荐

  1. Emgucv4.4.0.4099版本PCB开发板纠偏(直线倾斜角度计算方法、确定参考点坐标)MinEnclosingCircle(拟合圆函数)

    原图 PCB原图文件百度云链接: https://pan.baidu.com/s/1Q4JYpmY6epPoO6dP45GcRw 提取码:zzxd 代码 //计算直线倾斜角度 public doubl ...

  2. 金属圆柱求取倾斜角度

    方法1: count_seconds (Seconds1)read_image (Image, '9_7750_f3d301de6764d94.jpg')get_image_size (Image, ...

  3. python中用plot绘制两条直线_在Matplotlib中绘制两条直线之间角度的最佳方法

    您可以使用^{}绘制相应角度度量值的弧. 绘制角弧: 定义一个函数,该函数可以接受2matplotlib.lines.Line2D个对象,计算角度并返回一个matplotlib.patches.Arc ...

  4. 正大国际期货:恒指操作技巧之交易中五种绝佳的开仓思路分析

    很多人总是亏损,其实最重要的原因之一是没有一个优势的概率系统,正大IxxxuanI经过了解之后,对目前市面上概率系统进行总结,现将以下几种优势的概率系统归纳罗列如下,有缘者定可举一反三,或可为你细化和 ...

  5. opencv判断 线夹角_python opencv实现直线检测并测出倾斜角度(附源码+注释)

    由于学习需要,我想要检测出图片中的直线,并且得到这些直线的角度.于是我在网上搜了好多直线检测的代码,但是没有搜到附有计算直线倾斜角度的代码,所以我花了一点时间,自己写了一份直线检测并测出倾斜角度的代码 ...

  6. 黑客观察手机倾斜角度就能猜出你的密码,首次命中率高达74%!

    本文讲的是黑客观察手机倾斜角度就能猜出你的密码,首次命中率高达74%!, 近日,安全研究人员发现了一种黑客入侵智能手机的新方式,即使用户手机有PIN码和密码保护,黑客也只需要通过窥探其输入手机密码时倾 ...

  7. halcon中如何生成椭圆_Halcon中关于角度计算和测量拟合的算子详解

    角度计算算子简介 1.计算直线与水平轴之间的夹角 angle_lx( : : Row1, Column1, Row2, Column2 : Angle) 角度计算方式:将直线看作向量(有方向性),以直 ...

  8. Halcon中关于角度计算的算子详解

    1.计算直线与水平轴之间的夹角 angle_lx( : : Row1, Column1, Row2, Column2 : Angle) 角度计算方式:将直线看作向量(有方向性),以直线与水平轴的交点为 ...

  9. 【CAD.Net】基础课程 AutoCAD 中的凸度,求圆弧的圆心、起始角度、圆弧的中心点

    一,什么是 AutoCAD 中的凸度 凸度(bulge)是AutoCAD 中一个非常重要和强大的数学工具,它可以以非常简洁的方式表示一段弧的信息.已知平面内具体两点坐标,以及一个凸度值,即可唯一确定一 ...

  10. 求直线(已知起点和角度,给出新点推算直线的端点)

    ''' <summary>         ''' 求直线(已知起点和角度,给出新点推算直线的端点)         ''' </summary>         <Co ...

最新文章

  1. 用java代码实现Singleton,为什么在Java代码中实现Singleton模式(有时被认为是Java世界中的反模式)?...
  2. U盘无法安全正常弹出和删除如何处理
  3. 【bzoj3771】Triple FFT+容斥原理
  4. WINDOWS XP常用的快捷键组合?
  5. 行为类模式(八):状态(State)
  6. 数字图像处理实验(4):PROJECT 02-04 [Multiple Uses],Zooming and Shrinking Images by Bilinear Interpolation
  7. springboot配置文件加载顺序
  8. jQuery(UI)常用插件
  9. python类继承中构造方法_第8.3节 Python类的__init__方法深入剖析:构造方法与继承详解...
  10. [Catalan]求解随机出栈可能数(洛谷P1044题题解,Java语言描述)
  11. Uber CEO亲自体验送外卖:三个半小时挣了106美元
  12. vue 表单 input checkbox
  13. c swap方法在哪个库里面_覆膜条件下土壤水热动态与玉米种子生长的SWAP修正模型...
  14. PEP8——Python代码规范
  15. python3 numpy二维方法_Python numpy:基于坐标创建二维值数组
  16. 吴昊品游戏核心算法 Round 16 —— 吴昊教你玩口袋妖怪 完结篇 由金手指想到的...
  17. 微信如何收发企业邮箱邮件
  18. The server returned the following error: 无法与服务器建立连接(0x80072EFD)
  19. 商业模式新生代_商业模式新生代——商业模式设计
  20. 本题要求实现一个计算m~n(m<n)之间所有整数的和的简单函数

热门文章

  1. Cocos 2015开发者大会:陈昊芝与王哲联手推荐手游录像SDK—WeRec
  2. 宣传画册制作技巧,学会了避免踩坑
  3. css3精灵动画,逐帧自适应精灵图+css3实现小动画
  4. 【SLAM】G2O优化库超详细解析
  5. 机器人图像识别要学习些什么_零售中的机器学习图像识别是什么?
  6. uni-app 微信小程序-完善用户隐私保护指引-(chooseAndUploadFile:fail api scope is not declared in the privacyaereemen
  7. QT做一个按钮Qpushbutton 倒计时功能的小小程序
  8. 数字签名验签简单理解
  9. 原创:基于「一万小时定律」去职业规划的两个「秘诀」
  10. GitHub 项目遭到“有毒”言论攻击,核心开源贡献者被迫出走!