当前位置: 首页 > java >正文

分水岭边缘提取和hough提取边缘

分水岭边缘提取

分水岭(Watershed)算法是一种常用于图像分割的技术,尤其适用于处理具有相似灰度值但又需要区分开的区域,例如在二值图像中将前景和背景分开或者在灰度图像中将不同对象分开。在Halcon中实现分水岭算法通常涉及以下几个步骤:

1.加载图片并对图片进行高斯平滑操作:

read_image (Image, 'particle')
gauss_filter (Image, ImageGauss, 9)

Image
ImageGauss
 2.进行灰度值翻转

 invert_image (ImageGauss, ImageInvert)

ImageInvert
 3.分水岭提取边缘

 watersheds (ImageInvert, Basins, Watersheds)

* 参数2 盆地
* 参数3 Watersheds 分水岭

Basins
Watersheds
 4.最后处理使用地形阈值分割

 watersheds_threshold (ImageInvert, Basins1, 30)

Basins1

 Hough进行提取边缘

在使用Halcon进行图像处理时,霍夫变换(Hough Transform)是一种常用的技术,用于检测图像中的直线。霍夫变换特别适用于提取边缘,尤其是在边缘不明显或者噪声较多的情况下。下面将介绍如何在Halcon中利用hough变换来提取边缘。

1.加载图片并裁剪区域

read_image (Image, 'fabrik')
rectangle1_domain (Image, ImageReduced, 170, 280, 310, 360)

Image
ImageReduced
 2.使用sobel_dir提取一个带方向的边缘图

sobel_dir (ImageReduced, EdgeAmplitude, EdgeDirection, 'sum_abs', 3)

EdgeAmplitude
EdgeDirection
 3.设置颜色、过滤阈值并裁剪出来带方向图片

 dev_set_color ('red')

threshold (EdgeAmplitude, Region, 55, 255)
reduce_domain (EdgeDirection, Region, ImageReduced1)

Region
ImageReduced1
 4.使用hough提取边缘

hough_lines_dir (ImageReduced1, HoughImage, Lines, 4, 2, 'mean', 3, 25, 5, 5, 'true', Angle, Dist)

HoughImage
Lines
hough参数介绍: 
  1. 参数1  EdgeDirectionReduced(输入参数):这是一个单通道图像,表示边缘的方向。通常由边缘检测算子(如 sobel_dir 或 edges_dir)生成。
  2. 参数2  HoughImage(输出参数)
  3. 参数3  Lines(输出参数):输出检测到的直线,以 [StartRow, StartCol, EndRow, EndCol] 的形式表示每条线的起点和终点坐标。
  4. 参数4  4(输入参数):Hough 变换的 Rho 分辨率(像素单位):决定霍夫空间的距离分辨率,即直线到原点的距离步长。
  5. 参数5  2(输入参数):  Hough 变换的 Theta 分辨率(角度单位):决定霍夫空间的角度分辨率,即角度步长(通常以度为单位)。
  6. 参数6  'mean'(输入参数):  边缘方向计算模式: 'mean':使用边缘方向的平均值。'all':考虑所有可能的方向。
  7. 参数7  3(输入参数):  平滑窗口大小:用于平滑霍夫空间,减少噪声影响。
  8. 参数8  25(输入参数):  最小投票数(阈值):霍夫空间中,只有投票数超过该值的直线才会被检测出来。值越大,检测到的直线越少(但更可靠)。
  9. 参数9  5(输入参数):线段之间的最小角度;低于此值,将合并一条线
  10. 参数10  5(输入参数):  最大线间隙(像素):允许的线段之间的最大间隙,超过此间隙的两条线段不会被合并为同一条直线。
  11. 参数12 'true'(输入参数):是否考虑边缘方向:'true':仅检测与边缘方向一致的直线。   'false':忽略边缘方向,检测所有可能的直线。
  12. 参数13  Angle(输出参数): 输出检测到的直线的角度(相对于图像坐标系)。
  13. 参数14  Dist(输出参数):输出检测到的直线到图像原点(通常是左上角)的距离(像素单位)。
 5.绘制霍夫变换提取直线

gen_region_hline (Lines, Angle, Dist)

Lines

 最终结果如下:

dev_display (Image)
dev_set_draw ('margin')
dev_display (Lines)

http://www.xdnf.cn/news/13781.html

相关文章:

  • ubuntu20上 : mujoco210安装教程
  • 计算机系统设计:E-R图、类图、时序图、功能结构图、流程图、用例图、架构图
  • 【ARMv7-A】——CLZ 指令
  • 【25-cv-06400、25-cv-06413】Keith律所再次代理Elizabeth Anne Evans蝴蝶版权画
  • 使用MetaGPT 创建智能体(3)常用操作和晋级
  • < 自用文儿 腾讯云 VPS > Ubuntu 24 系统,基本设置
  • 无人机接收机运行技术要点分析!
  • 基于SC内存一致性模型两个核心约束的放松维度
  • Systemctl 手记:从服务管理到资源控制的进阶实践
  • AI时代,学习力进化指南:如何成为知识的主人?
  • JSON 与 AJAX
  • 开疆智能ModbusTCP转Devicenet网关连接ABB机器人配置案例
  • 网页中调用自定义字体可以通过 ‌CSS‌ 的 @font-face 规则实现
  • Vue 跳转页面,第一次进页面,会出现样式混乱,刷新后即恢复正常(问题已解决)
  • 进程和计划任务管理
  • 剑指offer23_树的子结构
  • ESP32S3 关于使用INMP441麦克风 和MAX98357AETE功放进行录音和播放
  • 复现论文报错解决
  • 新手速学:在线投票制作系统操作详细步骤
  • centos clamav 扫描及告警配置
  • 内网渗透测试技巧与利用操作手册(SMB / MSSQL / LDAP)
  • 全志A33安卓6.0添加支持usb摄像头动态热插拔
  • 换颜色 算法笔记
  • 新能源知识库(46)EMS与协控装置
  • 【深度学习-Day 27】模型调优利器:掌握早停、数据增强与批量归一化
  • 使用 C/C++的OpenCV 将多张图片合成为视频
  • 从零开始学Python(3)——函数
  • 第十三节:第七部分:Stream流的中间方法、Stream流的终结方法
  • 4、程序的固化和下载(一)
  • 《TCP/IP协议卷1》第11章 UDP:用户数据报协议