目录

  • 获取边缘轮廓
  • 将轮廓拟合为直线
  • 将直线生成新有清晰角的三角形

获取边缘轮廓

read_image (Image1234, 'F:/Desktop/1234.png')
//获取亚像素边缘
edges_sub_pix (Image1234, Edges, 'canny', 1, 20, 40)
//筛选出需要的轮廓
select_contours_xld (Edges, SelectedContours, 'contour_length', 600,1200, -0.5, 0.5)
//将轮廓用直线和圆分割为片段
segment_contours_xld (SelectedContours, ContoursSplit, 'lines_circles', 10, 9, 2)
//将差别大的轮廓筛选掉
select_contours_xld (ContoursSplit, SelectedContours1, 'contour_length', 20, 600, -0.5, 0.5)
//将边缘拟合为直线,Begain和End代表拟合后直线的起点和终点坐标
fit_line_contour_xld (SelectedContours1, 'tukey', -1, 0, 5, 2, RowBegin1, ColBegin1, RowEnd1, ColEnd1, Nr, Nc, Dist)




将轮廓拟合为直线

上步获取到三边的的参数BegainEnd点的信息
这步使用一次函数的方法获得直线的延长线
一次函数为:y = kx+b
已知直线的BegainEnd点的信息
r:= RowBegin - RowEnd
n:= ColBegin- ColEnd
k:= r/n

由此得出直线的斜率k
b:=RowBegin - kColBegin
获得直线的位移b
最后获取直线的延长线
横坐标开始点设置为接近0点的5,终点设置为大于图像范围的值2500(视情况选择)
row1:=k5+b
row2:=k2500+b
disp_line (3600, row1,5 , row2, 2500)

r:= RowBegin1[0] - RowEnd1[0]
n:= ColBegin1[0] - ColEnd1[0]
//由起始点与终点生成直线
disp_line (3600, 0,ColEnd1[0] , 100, ColEnd1[0])
r:= RowBegin1[1] - RowEnd1[1]
n:= ColBegin1[1] - ColEnd1[1]
k1:= r/n
b1:=RowBegin1[1] - k1*ColBegin1[1]
row2:=k1*5+b1
row22:=k1*2500+b1
disp_line (3600, row2,5 , row22, 2500)
r:= RowBegin1[2] - RowEnd1[2]
n:= ColBegin1[2] - ColEnd1[2]
k1:= r/n
b1:=RowBegin1[2] - k1*ColBegin1[2]
row3:=k1*5+b1
row32:=k1*2500+b1
disp_line (3600, row3,5 , row32, 2500)

将直线生成新有清晰角的三角形

//直线与直线的交点获取到三角形的三个角点
intersection_lines (0,ColEnd1[0] , 100, ColEnd1[0], row2,5 , row22, 2500, RowA, ColumnA, IsOverlapping)
intersection_lines (0,ColEnd1[0] , 100, ColEnd1[0], row3,5 , row32, 2500, RowB, ColumnB, IsOverlapping)
intersection_lines (row2,5 , row22, 2500, row3,5 , row32, 2500, RowC, ColumnC, IsOverlapping)
//使用三角形三个角点闭合轮廓
Rows:=[RowA,RowB,RowC,RowA]
Cols:=[ColumnA,ColumnB,ColumnC, ColumnA]
//生成闭合轮廓
gen_contour_polygon_xld (Contour, Rows, Cols)

Halcon提取三角形边缘以及获取角点相关推荐

  1. Halcon得出三角形内切圆

    目录 一.得出三角形的三个角点 二.用类似尺规作图法得出三角形圆心 1.以三角形三角点画出圆形轮廓 2.求出三角形轮廓与圆形轮廓之间的交点 3.获得角平分线,三边角平分线交点为圆心 三.求出圆心到边最 ...

  2. Java黑皮书课后题第4章:*4.6(图上的随机点)编写一个程序,产生一个圆心位于(0,0)原点半径为40的圆上面的三个随机点,显示由这三个随机点组成的三角形的三个角的度数

    *4.6(图上的随机点)编写一个程序,产生一个圆心位于(0,0)原点半径为40的圆上的三个随机点,显示由这三个随机点组成的三角形的三个角的度数 题目 题目概述 破题 代码 题目 题目概述 *4.6(图 ...

  3. R语言使用psych包的fa函数对指定数据集进行因子分析(输入数据为相关性矩阵)、使用rotate参数指定进行斜交旋转提取因子、并获取因子分数、因子得分系数(scoring coefficients)

    R语言使用psych包的fa函数对指定数据集进行因子分析(输入数据为相关性矩阵).使用rotate参数指定进行斜交旋转提取因子.并获取因子分数.因子得分系数(factor scores.scoring ...

  4. Halcon模板轮廓坐标点获取

    Halcon模板轮廓坐标点获取 第一步:创建模板,用于创建模板的图像以及程序如下所示: 问题点:创建的模板轮廓位于图像左上角,模板中心坐标(0,0) 第二步:获取轮廓坐标 (1)直接获取 问题点:坐标 ...

  5. 使用差分金字塔提取图像边缘 python实现

    本文提供一种提取图像边缘的快速算法 更多提取图像边缘的方法: 最大-最小滤波器实现图像边缘提取 Prewitt滤波器和Sobel滤波器提取图像边缘 拉普拉斯滤波器提取图像边缘 差分金字塔提取图像边缘算 ...

  6. 图像边缘提取 java_提取图像边缘

    利用java打开一张图片,并提取其边缘.功能有打开文件,以及提取边缘. 算法原理 由于边缘提取的算法有很多种,而提取的精度在相同阈值的情况下也会有不同的结果. 这次我的边缘提取使用索贝尔算子(Sobe ...

  7. 用halcon提取衣服徽章

    收到一封email,有个学员求助去除衣服上纹理的干扰,然后提取衣服上徽章的边缘的方法.   我想他肯定是个很努力上进的boy,在求助以前也许已经试过各种方法,通过二值化不断的调试阈值,   寻找各种边 ...

  8. halcon提取区域的拐点、折点

    算子: get_region_polygon  描述: 操作符get_region_polygon计算一个多边形来近似一个区域(region)的边缘.多边形是行(rows)和列坐标(columns)的 ...

  9. [java]键盘录入数值到数组-根据数值获取角标-找出数据中最大数值-反转数组

    package Way_chongzai; import java.util.Arrays; import java.util.Scanner;//录入数值到 数组并实现  根据数值 查找角标 pub ...

最新文章

  1. 判断图片下载是否成功 file_exists和filesize 图像0KB问题
  2. 云计算的关键特点及挑战
  3. macOS下配置环境变量/查看环境变量
  4. 用unison来同步你的远程文件夹 - Fwolf's Blog
  5. 平台允许同时在线人数 显示_12万人同时在线,游戏未正式发售,国产“糖豆人”已诞生?...
  6. linux提示桌面正在处理文件,linux系统下桌面配置文件.desktop的几个小问题
  7. Android mmap 文件映射到内存介绍
  8. Zookeeper原理架构
  9. MYSQL:RELPACE用法
  10. Android 代码混淆、Android Proguard(混淆)
  11. Music Collector Mac破解版——你身边的音乐收藏专家
  12. 计算机知识查找,计算机基础知识:如何查找文件
  13. solidity智能合约[4]-pure与view剖析
  14. BZOJ1023 [SHOI2008]cactus仙人掌图
  15. 2022年卫浴行业报告:套系化+智能化拓宽边际,箭牌家居内资领航
  16. uva 815 Flooded!
  17. 《数学之美》读后感与商榷
  18. 直观理解线性插值(linear interpolation)和双线性插值(Bilinear interpolation)
  19. Ubuntu 20.04系统安装及初始配置
  20. cas112592-50-4/四溴苯基卟啉镍/nickel(II) tetra(p-Br-phenyl)porphyrin/分子式:C44H24Br4N4Ni++/分子量:986.99800

热门文章

  1. NFC读卡器读取BlackBerry手机数据
  2. 硅谷硬件工程师薪资分享
  3. Doom3 - Begin
  4. Python数据分析宝藏地带
  5. 优化圈复杂度(Cyclomatic complexity, CC)
  6. udp 视频包网络传输花屏
  7. 34-博客网站数据库-博文信息数据操作(一)
  8. 面向对象中OOA, OOD 和OOP的区别
  9. 28个情人节剪影图案PS笔刷
  10. 电脑象棋开发-网上资料