Halcon 重叠区域 显示汉字 图像分割

一 如何填充区域之间的GAP或分割重叠区域

在这里插入图片描述

read_image(Image,'fabrik')*区域生长法将图像分割成相同强度的区域,并将其划分成大小为行*列的矩形。 为了确定两个相邻的矩形是否属于相同的区域,
*仅使用其中心点的灰度值。 如果灰度值差小于等于公差,则将矩形合并到一个区域。regiongrowing(Image,Regions,1,1,3,1000)gen_empty_region(NoPixel)expand_region(Regions,NoPixel,RegionExpanded1,'maximal','image')dev_display(Image)dev_set_draw('margin')dev_set_colored(6)dev_display(RegionExpanded1)stop()

二 如何在窗口上显示汉字

dev_close_window()read_image(image,'particle')get_image_size(image,Width,Height)dev_open_window(0,0,Width,Height,'black',WindowID)dev_set_draw('margin')dev_set_color('green')threshold(image,Region,128,255)connection(Region,ConnectedRegions)select_shape_std(ConnectedRegions,SelectedRegions,'max_area',70)area_center(SelectedRegions,Area,Row,Column)dev_display(image)dev_display(SelectedRegions)set_tposition (WindowID, Height/2,0)write_string (WindowID, '面积最大区域的行坐标:'+Row+' 面积最大区域的列坐标: '+Column)

三 图像分割之地形学操作1.分水岭介绍

1 分水玲介绍

传统的分水岭分割方法,是一种基于拓扑理论的数学形态学的分割方法,其基本思想是把图像看作是地质学上的拓扑地貌,图像中每一像素的灰度值表示该点的海拔高度,每一个局部极小值及其周边区域称为集水盆地,而集水盆地的边界则形成分水岭。
在这里插入图片描述

2 相关概念

局部极小值点:该点对应一个盆地的最低点,当我们在盆地里滴一滴水的时候,由于重力作用,水最终会汇聚到该点。注意:可能存在一个最小值面,该平面内的都是最小值点。

3 分水玲原理

假设我们在盆地的最小值点,打一个洞,然后往盆地里面注水,并阻止两个盆地的水汇集,我们会在两个盆地的水汇集的时刻,在交接的边缘线上(也即分水岭线),建一个坝,来阻止两个盆地的水汇集成一片水域。这样图像就被分成2个像素集,一个是注水盆地像素集,一个是分水岭线像素集。

dev_close_window()read_image(image,'particle')get_image_size(image,Width,Height)dev_open_window(0,0,Width/2,Height/2,'black',WindowID)dev_set_draw('margin')dev_set_colored(12)dev_clear_window()*高斯滤波
gauss_filter(image,ImageGauss,9)*图像反选
invert_image(ImageGauss,ImageInvert)*从图像里提取分水玲和盆地
*第一个输入参数:输入图像
*第二个输出参数:分割后的盆地区域
*第三个输出参数:分割后的分水岭区域
watersheds(ImageInvert,Basins,Watersheds)dev_display(image)dev_display(Basins)

在这里插入图片描述

四 图像分割之阈值操作一

1 auto_threshold自动阈值

dev_close_window()read_image(image,'egypt1')get_image_size(image,Width,Height)dev_open_window(0,0,Width, Height, 'black', WindowHandle)dev_clear_window()*根据图像的灰度直方图来确定阈值,这里的Sigma是高斯滤波器,用于直方图的平滑
Sigma:=4auto_threshold(image,Regions,Sigma)

在这里插入图片描述
在这里插入图片描述

2 binary_threshold二值化阈值

dev_close_window ()read_image (image, 'egypt1')get_image_size (image, Width, Height)dev_open_window (0, 0, Width, Height, 'black', WindowID)dev_clear_window ()*使用二值化阈值分割图像
*如果LightDark =“light”,则选择灰度值大于或等于最佳阈值的所有像素。
*如果LightDark =“dark”,则选择灰度值小于的最佳阈值de 所有像素。
*通过选择Method ='max_separability',可以调用灰度直方图的自动阈值。
*该算法首先计算图像的直方图,然后使用统计矩来找到将像素划分为前景和背景的最佳阈值,
*并使这两个类之间的可分离性最大化。 此方法仅适用于字节和uint2图像。
binary_threshold (image, RegionMaxSeparabilityLight, 'max_separability', 'dark', UsedThreshold)

在这里插入图片描述

3 char_threshold字符提取

dev_close_window()read_image(image,'alpha1')get_image_size(image,Width,Height)dev_open_window(0,0,Width,Height,'black', WindowHandle)dev_clear_window()*阈值分割提取字符,主要应用是在明亮的纸上分割黑色字符单通道图像
*第一个输入参数:图像
*第二个输入参数:要计算直方图的区域
*第三个输出参数:分割的字符区域
*第四个输入参数:直方图高斯平滑的Sigma
*第五个输入参数:灰度值差异的百分比
*第理工输出参数:输出计算出的阈值
char_threshold(image,image,Characters,6,95,Threshold)

在这里插入图片描述
在这里插入图片描述

4 dual_threshold分割

*读取一张图像
read_image(Traffic1,'traffic1')*读取一张图片
read_image(Traffic2,'traffic2')*将图像由byte类型转化为int2类型
convert_image_type(Traffic1,ImageConverted1,'int2')*将图像由byte类型转换为int2类型
convert_image_type(Traffic2,ImageConverted2,'int2')*将两个图像相减
sub_image(ImageConverted1,ImageConverted2,ImageSub,1,0)*将有符号图像分割为正负两个区域
*第一个输入参数:图像
*第二个输出参数:分割后的正负区域
*第三个输入参数:最小区域大小
*第四个输入参数:最小灰度值大小
*第五个输入参数:阈值
dual_threshold(ImageSub,RegionDiff,500,20,10)

在这里插入图片描述

五 图像分割之阈值操作二

1 dyn_threshold局部阈值

dev_close_window()read_image(image,'egypt1')get_image_size(image,Width,Height)dev_open_window(0,0,Width,Height,'black',WindowID)dev_clear_window()mean_image(image,ImageMean,9,9)*用局部阈值来分割图像
*第一个输入参数:原始图像
*第二个输入参数:滤波后的图像
*第三个输出参数:分割后的区域
*第四个输入参数:补偿值,范围在540之间比较有用
*第五个输入参数:提取区域的类型,是亮的区域,或暗的区域,或相似区域
dyn_threshold(image,ImageMean,RegionDynThresh,15,'not_equal')

在这里插入图片描述
在这里插入图片描述

2 threshold固定阈值

dev_close_window()read_image(image,'egypt1')get_image_size(image,Width,Height)dev_open_window(0,0,Width/2,Height/2,'black',WindowID)dev_clear_window()*用全局阈值分割图像,试用图像亮度均匀的场合
*第一个输入参数:输入图像
*第二个输出参数:分割后的区域
*第三个输入参数:阈值下限
*第四个输入参数:阈值上限
threshold(image,Region,0,150)

在这里插入图片描述
在这里插入图片描述

3 var_threshold局部阈值

dev_close_window()read_image(image,'label_01')get_image_size(image,Width,Height)dev_open_window(0,0,Width/2,Height/2,'black', WindowHandle)dev_clear_window()*通过局部平均值和标准偏差进行阈值图像。试用场合不均匀的照明或噪声的图像
*第一个输入参数:输入图像
*第二个输出参数:分割后的区域
*第三个输入参数:均值和标准差的掩码宽度
*第四个输入参数:均值和标准差的掩码高度
*第五个输入参数:标准差因子
*第六个输入参数:最小灰度值和均值之差
*第七个输入参数:提取区域的类型,是亮的区域,或暗的区域,或相似区域,或不相似区域
var_threshold(image,Region,15,15,1.0,40,'dark')

在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/37208.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

php反序列化漏洞简介

目录 php序列化和反序列化简介 序列化 反序列化 类中定义的属性 序列化实例 反序列化实例 反序列化漏洞 序列化返回的字符串格式 魔术方法和反序列化利用 绕过wakeup 靶场实战 修复方法 php序列化和反序列化简介 序列化 将对象状态转换为可保持或可传输的格式的…

Linux—系统安全及应用

目录 一、账号安全控制 1、系统账号清理 1.1、将用户账号设置为无法登录 1.2、锁定长期不使用的账号 1.3、删除无用的账号 1.4、锁定账号文件passwd、shadow 2、密码安全控制 2.1、设置密码有效期 2.1.1、适用于新建用户 2.1.2、适用于已有用户 2.2、强制用户下次登录…

①常用API----Math

public static int abs(int a) // 返回参数的绝对值 public static double ceil(double a) // 返回大于或等于参数的最小整数 public static double floor(double a) // 返回小于或等于参数的最大整数 public static int round(f…

ETAS工具导入DEXT生成Dcm及Dem模块(一)

文章目录 前言Cfggen之前的修改ECU关联DcmDslConnectionDiagnostic ProtocolDiagnostic Ecu Instance PropsCommonContributionSetEvent修改communication channel总结前言 诊断模块开发一般是先设计诊断数据库,OEM会释放对应的诊断数据库,如.odx文件或.cdd文件。如果OEM没有…

如何修复Power BI【View usage metrics report】指标报表数据源更新问题?

故事背景 有朋友留言询问:通过我之前写的 想知道Power BI用户访问报告的次数?快来学习! 这篇文章,了解了如何查看Power BI用户访问报告的详情。 但是最近由于创建【View usage metrics report】指标报表的小伙伴离职了&#x…

【干货】一文讲清楚社群裂变的主要模式和SOP流程

一、社群裂变的主要模式 社群裂变是一种依赖于现有成员的推广以吸引新成员的增长策略。以下是几种主要的社群裂变模式: 老带新裂变 定义:通过老用户带动新用户,同时给予某一方或双方奖励的一种裂变形式。 示例:任务宝活动&…

公交车载视频监控系统概述

引言 随着城市交通的不断发展,公交车作为城市公共交通的重要组成部分,其安全性和管理效率越来越受到关注。为了提升公交车运营的安全性和管理效率,基于索迪迈视频监控管理平台,结合3G/4G网络技术,我们构建了一套公交车…

三星DRAM、NAND,“又双叒叕”带头涨价了

据韩国媒体《每日经济新闻》报道,三星电子计划在第三季度上调服务器DRAM和企业级NAND闪存的价格,涨幅预计在15%-20%,主要受人工智能(AI)需求激增的推动。这一举措有望提振公司下半年业绩。 据《经济日报》报道援引业内消息,由于厂…

jupyter安装及使用

引言 之前安装了anaconda,然后conda的环境管理里面就有jupyter,但是我一直没用过。 但是我用过colab,从使用体验上来说,非常相似,这次给服务器装了一个jupyter,然后我本地连接远程的来用,还挺…

【教程】几种不同的RBF神经网络

本站原创文章,转载请说明来自《老饼讲解-机器学习》www.bbbdata.com 目录 一、经典RBF神经网络1.1.经典径向基神经网络是什么1.2.经典径向基神经网络-代码与示例 二、广义回归神经网络GRNN2.1.广义回归神经网络是什么2.2.广义回归神经网络是什么-代码与示例 三、概率…

知识图谱综述

什么是知识图谱 4月 24, 2024 119 这是一个基于这个优秀而全面的知识图谱教程的教程。 来源:Aidan et al., Knowledge Graphs, https://arxiv.org/pdf/2003.02320.pdf 一、说明 在我们周围的现实世界中,物体和它们之…

仿真CAN报文发送的CRC校验算法(附CAPL代码)

文章目录 前言一、为什么CAN报文有CRC?二、怎么确定是否需要做CRC校验?三、CAPL代码实现CRC算法 前言 关于CRC校验的基本理论、算法实现网上已经有很多介绍文章,本文不再赘述。只是记录在项目测试中真正开发CRC算法并进行测试的一些体会。 …

43.SO_BACKLOG

属于ServerSocketChannel参数 SO_BACKLOG 设置的过小,高峰期有很多连接来了,就会被拒绝,报拒绝连接错误。 控制全连接队列的大小,可以容下适量连接。所以SO_BACKLOG设置的要大一些。 serverBootstrap.option(ChannelOption.SO_B…

深度解析百数多标签技术:让数据处理更加精准与高效

百数的多标签功能允许用户在单个表单或应用中创建多个独立的标签页,每个标签页可以包含不同的字段和数据。这有助于清晰组织和管理表单内容,使数据结构更加分明。用户可以根据需要添加、删除或重新排序标签,轻松管理复杂数据,提高…

Swagger与RESTful API

1. Swagger简介 在现代软件开发中,RESTful API已成为应用程序间通信的一个标准。这种架构风格通过使用标准的HTTP方法来执行网络上的操作,简化了不同系统之间的交互。API(应用程序编程接口)允许不同的软件系统以一种预定义的方式…

【内网安全】组策略同步-不出网隧道上线-TCP转ICMP

目录 域控-防火墙-组策略对象同步演示1、打开组策略管理,新建一个GPO连接 取名fhq(防火墙)2、编辑fhq并设置防火墙状态3、命令:gpupdate/force 更新策略4、域控主机新增规则5、域内用户主机更新规则 域控-防火墙-组策略不出网上线演示 ICMP协议上线&…

NAND闪存原厂铠侠加速推上市,预计10月完成IPO

NAND闪存原厂铠侠Kioxia拟趁着半导体市场回暖及企业财务状况显著提升的契机,加速推进其上市进程。 据报道,公司计划最快于8月底提交IPO申请,目标是在2024年10月末于东京证券交易所完成首次公开募股。此番上市动作不仅反映出市场复苏迹象&…

探索未来的AI革命:GPT-5的即将登场

人不走空 🌈个人主页:人不走空 💖系列专栏:算法专题 ⏰诗词歌赋:斯是陋室,惟吾德馨 目录 🌈个人主页:人不走空 💖系列专栏:算法专题 ⏰诗词歌…

动手学深度学习(Pytorch版)代码实践 -计算机视觉-40目标检测和边界框

40目标检测和边界框 import torch from PIL import Image import matplotlib.pylab as plt from d2l import torch as d2lplt.figure(catdog) img Image.open(../limuPytorch/images/catdog.jpg) plt.imshow(img) plt.show()# 边界框 #save def box_corner_to_center(boxes):…

【Matlab】-- 飞蛾扑火优化算法

文章目录 文章目录 01 飞蛾扑火算法介绍02 飞蛾扑火算法伪代码03 基于Matlab的部分飞蛾扑火MFO算法04 参考文献 01 飞蛾扑火算法介绍 飞蛾扑火算法(Moth-Flame Optimization,MFO)是一种基于自然界飞蛾行为的群体智能优化算法。该算法由 Sey…