开启左侧

[HALCON文档] Halcon、C#实现保存原图带字符串文字提示功能(分辨率一致)

  [复制链接]
绝地武士 发表于 2018-8-31 21:38:09 | 显示全部楼层 |阅读模式
应用场景:
很多时候我们需要保存原图的同时,对处理后的结果图像和显示文字一起保存,而且不能损失分辨率,那么就可以用这个小窍门来搞定,因为Halcon自带没有相关算子可以合成,毕竟默认的字符串显示是外挂在指定位置上的,要合成就要想点办法!

实现效果:
TIM截图20180831212832.png

核心原理:
利用Halcon自带截图dump_window功能,但是需要改进下代码
Halcon如何实现:
游客,本帖隐藏的内容需要积分高于 5 才可浏览,您当前积分为 0


C#怎么实现:
1.新建两个Halcon窗口,我们取名为m_WindowHandle1和m_WindowHandle2:
游客,本帖隐藏的内容需要积分高于 5 才可浏览,您当前积分为 0

注意,第二个窗口我们主要用于处理截屏,所以要单独开辟,否则会影响第一个实际窗口的效果!
同时,设置第二个窗口的可见属性为false,也就是Visible设置为false,这样别人就看不到了,实际只能看到一个处理窗口。

2.读取代码为:
游客,本帖隐藏的内容需要积分高于 5 才可浏览,您当前积分为 0

这个Buffer类型的窗口不仅可以解决窗口闪烁问题,实现双缓存效果,而且可以制作分辨率一致结果图像。


3.保存截图代码为:
游客,本帖隐藏的内容需要积分高于 5 才可浏览,您当前积分为 0

其中最关键的两句就是:
游客,本帖隐藏的内容需要积分高于 5 才可浏览,您当前积分为 0
不一致!

4.剩下的就自己玩了,当然这个是一个小技巧,因为Halcon中文字实际上是外挂上去的,要真正合成只有dump_window了,你用其他库也可以实现,这里我们主要用Halcon实现,其实对程序本身影响完全没有,而且不占位置,不占显示,so easy!

5.如果觉得隐藏麻烦,可以用Halcon自带的打开缓存窗口的方式进行操作,默认是不可见的,最后做dump_window_image即可!
游客,本帖隐藏的内容需要积分高于 5 才可浏览,您当前积分为 0


下载C#源代码(采用VS2010 + Halcon12.0.3 x86开发):
链接:https://pan.baidu.com/s/1jJunxvflFvcvU7_HPopU8A 密码:
游客,本帖隐藏的内容需要积分高于 5 才可浏览,您当前积分为 0



wqqdoit 发表于 2018-8-31 21:48:05 | 显示全部楼层
谢谢老师
阿恒98 发表于 2018-8-31 22:50:57 | 显示全部楼层

cqyangjianao 发表于 2018-8-31 23:44:48 | 显示全部楼层
感谢大神啰 和
donote 发表于 2018-9-1 00:49:59 | 显示全部楼层
学习,谢谢。
feel 发表于 2018-9-1 01:09:54 | 显示全部楼层
这个可是非常实用的技巧,学习学习。
armyzhang 发表于 2018-9-1 04:52:20 | 显示全部楼层
学习学习,谢谢
qw931225 发表于 2018-9-1 07:41:30 | 显示全部楼层
谢谢老师
nj720417 发表于 2018-9-1 08:20:14 | 显示全部楼层

学习学习,谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表