halcon入门之_提取遥控器字符并且写入txt文本

程序中使用的照片如上

*老生常谈
read_image (Image, a)
rgb1_to_gray (Image, GrayImage)
dev_display (GrayImage)
* 首先要把它转化为灰度图,在机器视觉中,大部分的图像处理算子都是建立在灰度图上的,所以gray(灰度图)是标志性存在的*转化为灰度图后,就要进入正式的图像处理了,先来一波阈值分割auto_threshold (GrayImage, Regions, 24.4)
*auto_threshold 算子是基于直方图的自动阈值分割方法,第三个参数的作用是一个平滑算子,在这次的使用中,效果不是很好,分析原因主要是对比不够强烈,算子使用前后没有明显区分
threshold (GrayImage, Region, 170, 255)
*threshold 是手动设置阈值的算子,在halcon中查看阈值可以在鼠标移至照片上,按下Ctrl键,便会实时显示当前灰度值
*binary_threshold (GrayImage, Region, 'smooth_histo', 'light', UsedThreshold)
*binary_threshold 在这里的使用中,遥控器左下角有些许噪声会干扰
*阈值分割后,常见的做法就是连通区域
connection (Region, ConnectedRegions)
*然后在这里,明显的可以通过面积特征来筛选就可以
select_shape_std (ConnectedRegions, SelectedRegions, 'max_area', 1.22555e+06)
dev_clear_window ()
dev_display (SelectedRegions)*在select_shape_std 算子中,面积大小可以通过halcon的"打开特征检测"菜单来查看*提取之后填充
fill_up (SelectedRegions, RegionFillUp)
*截取带有字符的区域,如果上边不填充,这里直接截取区域的话,会漏掉字符部分
reduce_domain (GrayImage, RegionFillUp, ImageReduced)
*区域截取之后,再通过阈值分割来找到字符
fast_threshold (ImageReduced, Region1, 0, 100, 20)
*先把字符区域放平整,分割出去','
orientation_region (Region1, Phi)
*转换成正常角度,把逗号分割出去
area_center (Region1, Area, Row, Column)
vector_angle_to_rigid (Row, Column, Phi, Row, Column, -0.5*3.14, HomMat2D)
affine_trans_region (Region1, RegionAffineTrans, HomMat2D, 'nearest_neighbor')*去除','区域,在这里考虑使用面积筛选
*腐蚀-膨胀-连通处理*筛选
closing_circle (RegionAffineTrans, RegionClosing, 3.5)
dilation_rectangle1 (RegionClosing, RegionDilation, 1, 11)
connection (RegionDilation, ConnectedRegions1)
******这里的两个筛选还是有区别的,注意区分
select_shape_std (ConnectedRegions1, SelectedRegions1, 'max_area', 150)
select_shape (ConnectedRegions1, SelectedRegions2, 'area', 'and', 150, 99999)
****把未去除逗号区域旋转
affine_trans_region (Region1, RegionAffineTrans1, HomMat2D, 'nearest_neighbor')
*求交集
intersection (SelectedRegions2, RegionAffineTrans1, RegionIntersection)sort_region (RegionIntersection, SortedRegions, 'first_point', 'true', 'row')
*有字符连接在一起的情况,要分割开来
*首先寻找特征,根据面积呢,是不合适了,在这里,我们选择通过矩形边长来吧select_shape (SortedRegions, SelectedRegions3, 'rect2_len1', 'and', 30, 99999)
*膨胀
closing_circle (SelectedRegions3, RegionClosing1, 0.5)
dilation_rectangle1 (RegionClosing1, RegionDilation1, 1, 11)
connection (RegionDilation1, ConnectedRegions2)*单个字符分割后,再求交集
intersection (ConnectedRegions2, SelectedRegions3, RegionIntersection1)*得到一个空区域
gen_empty_obj (EmptyObject)
concat_obj (EmptyObject, RegionIntersection1, EmptyObject)difference (RegionIntersection, RegionIntersection1, RegionDifference)concat_obj (RegionDifference, EmptyObject, ObjectsConcat)count_obj (ObjectsConcat, Number)a:=[]
l1:=[]
l2:=[]
for i := 1 to Number by 1select_obj (ObjectsConcat, ObjectSelected, i)area_center (ObjectSelected, Area1, Row1, Column1)a:=[a,Area1,'\t']smallest_rectangle2 (ObjectSelected, Row2, Column2, Phi1, Length1, Length2)l1:=[l1,Length1,'\t']l2:=[l2,Length2,'\t']
endfor*新建txt
open_file ('0711.txt', 'output', FileHandle)fwrite_string (FileHandle, a)
fnew_line (FileHandle)fwrite_string (FileHandle, l1)
fnew_line (FileHandle)fwrite_string (FileHandle, l2)
fnew_line (FileHandle)

#s/

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

ts泛型 不能将类型“string”分配给类型“U”。 “U”可以使用与“string”无关的任意类型进行实例化。

function cyc<T,U>(msg:T):U{let str:string"你输入了:";strmsg;return str; } var logcyc<string,string>("1"); console.log(log) var log1cyc<number,string>(2); console.log(log1) 报错如下 不能将类型“string”分配给类型“U”…

富文本编辑器 wangeditor 的使用

富文本编辑器 wangeditor 的使用 为什么选择使用 wangeditor a. 轻量、简洁、界面美观、文档齐全、易用、开源免费、开源团队维护、有专业Q群答疑、持续更新、无需使用其他库。插件功能基本符合我们目前的业务需求 b. 相比较于TinyMCE一类的编辑器&#xff0c;中文文档入门简单…

tinymce富文本编辑器的使用

tinymce富文本编辑器的使用 1、基本介绍 tinymce富文本官网&#xff1a;https://www.tiny.cloud/ 中文文档&#xff1a;http://tinymce.ax-z.cn/ tinymce-npm地址&#xff1a;https://www.npmjs.com/package/tinymce tinymce英文文档-示例地址&#xff1a;https://www.tin…

vim 文本编辑器

4.2 vim文本编辑器 4.2.1 简介 vim是vi的升级版,最常见的区别是能用多种颜色显示显示系统文件的一些特殊信息。 vi: Visual Interface 文本编辑器,可视化接口vim&#xff1a;vi iMproved的缩写&#xff0c;即vi的增强版 vim编辑器分为三种主要模式&#xff1a; 命令模式&am…

超级好用的TXT分本分割工具

百度网盘&#xff1a;https://pan.baidu.com/s/1ry-LCLpgwTghXWbL8q7bnQ

python分割文本_python分割文本

广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! break f.write(data) print(fid,#,end=.) fid+=1... 我有一个文本文件。 我需要得到一个句子列表。 这如何实现? 有很多微妙的东西,比如点用在缩写中。 我的…

java手写-txt大文本分割

一、txt文本切割代码 场景&#xff1a;公司项目txt日志文件太大&#xff0c;用notepad看起来太卡了&#xff0c;公司禁用网盘也没法下载&#xff0c;自己空闲了写一个吧&#xff0c;复习一下输入出入流。 先给代码成品吧&#xff1a; 就是这么简单&#xff0c;几行代码就可以…

C#版TXT文本分割器

哈&#xff01;老师实验要求要做文件分割器的&#xff0c;这里先做个demo出来和大家分享下。 这是实验要求&#xff1a;1. 能进行文件分割 2. 分割块大小由用户输入决定 3. 能进行文件合并 …

C#txt文本分割器

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms;//openfiledialog using System.IO;//文本处理namespace CutTxt {public parti…

一文带你了解MySQL之事务隔离级别和MVCC

目录 一、数据准备二、事务隔离级别2.1 事务并发执行遇到的问题2.2 SQL标准中的四种隔离级别2.3 MySQL中支持的四种隔离级别 三、MVCC3.1 版本链3.2 ReadView3.2.1 READ COMMITTED3.2.2 REPEATABLE READ 3.3 MVCC小结 四、关于purge五、总结 一、数据准备 为了我们学习的顺利进…

从FC到Wii 24年来游戏机CPU发展历程回顾

作者&#xff1a;吴愧 从小学开始&#xff0c;游戏机就伴随着我走过一段快乐、辛酸的历程。宁愿早上饿肚子&#xff0c;也要省吃减用存钱买游戏卡&#xff0c;或者添钱换卡玩。好不容易有钱买到新的游戏卡&#xff0c;高兴得乐翻天&#xff0c;玩到饭都能都忘记吃。对于家里那些…

MotioninJoy安装教程-版本0.6.0003

摘要: SONY的PS3游戏主机配置的DS3(DUALSHOCK 3)手柄质量手感都不错&#xff0c;特别是喜欢PS系手柄玩实况足球的玩家来说就是不二的选择。DUALSHOCK 3本身包括蓝牙无线和USB有线的通信方式&#xff0c;但是都不是标准的数据格式&#xff0c;所以在电脑系 ... SONY的PS3游戏主机…

感叹游戏行业的飞速发展

现在的游戏大作层出不穷&#xff0c;玩着这些3A大作&#xff0c;有时候不禁让我想起小时候玩小霸王游戏机的时光&#xff0c;虽然小霸王游戏是抄袭任天堂的红白机&#xff0c;但确实给国内的孩子们带来了无限的乐趣。那个时候一起玩耍的小伙伴们&#xff0c;都会要求父母给自己…

G502使用计算机配置,罗技g502dpi设置配置文件 | 手游网游页游攻略大全

发布时间&#xff1a;2016-06-27 我是用罗技力反馈EX 以下是设置截图 [不知道是不是游戏有BUG,我的方向盘始终没有出现自然震动.但是一按手刹车就会震动个不停] 第一步: 请在罗技驱动方向盘驱动程序下,选择双轴 [也就是图中的组合那里不要打勾,要不然 ... 标签&#xff1a; 攻…

推荐一个ps3的六轴手柄在windows下的驱动

和Xbox360手柄的适配器和电池盒需要另外购买比起来&#xff0c;PS3手柄比较厚道&#xff0c;基本上是一次性到位&#xff08;蓝牙适配器的价格就几乎忽略不计了&#xff09;&#xff0c;但PS3手柄在Windows下却没有官方的驱动&#xff0c;导致无法发挥其强悍的功能&#xff0c;…

DirectInput手柄在Windows环境下震动实现

DirectInput手柄Windows环境下震动实现 背景1.direcrInput手柄震动控制1.1运行环境1.2代码实现 2 模拟XInput设备&#xff0c;通过XInput实现2.1 x360ce设置 2.2 XInput 代码实现2.3 x360ce分析 背景 近期项目里面有个需求&#xff0c;需要在控制终端上安装摇杆&#xff0c;且…

虚幻4UE4使用PS4 DualShock4手柄ProController Switch手柄

虚幻4UE4使用PS4 DualShock4手柄ProController Switch手柄 使用虚幻引擎绑定输入操作可参考我的另一篇文章。虚幻4 UE4 绑定按键操作及切换视角-CSDN博客 使用虚幻引擎开发经常会碰到使用手柄或其他输入设备进行输入的情况&#xff0c;虽然在引擎->输入中有游戏手柄的各种…

Maven 打包插件 maven-jar-plugin

文章目录 指定版本生成可执行 Jar准备依赖&#xff0c;并指定依赖位置自动下载依赖的 Jar 文件 打包时排除文件与其他常用打包插件比较 本文是对 maven-jar-plugin 常用配置的介绍&#xff0c;更详细的学习请参照 Apache Maven JAR Plugin 官方文档 这是 maven 生命周期 packa…

Linux系统中使用Xbox360手柄

最近一个项目中需要用到Xbox360游戏手柄&#xff0c;硬件平台为周立功A7开发板&#xff0c;EPC-6G2C-L&#xff0c;折腾半天&#xff0c;终于弄好了&#xff1b; 正常电脑Ubuntu系统是自带手柄驱动的&#xff0c;将手柄插上电脑USB接口&#xff0c;将自动出现设备接口文件&…

dll修复都有哪些方法?详细解析各种dll修复方法

DLL&#xff08;动态链接库&#xff09;是 Windows 操作系统中的一种重要文件&#xff0c;它包含了许多程序所需的函数和资源。因此&#xff0c;当 DLL 文件出现问题时&#xff0c;可能会导致程序无法正常运行&#xff0c;甚至整个系统崩溃。这时候需要使用 DLL 修复工具进行修…