应用场景:
很多时候我们需要保存原图的同时,对处理后的结果图像和显示文字一起保存,而且不能损失分辨率,那么就可以用这个小窍门来搞定,因为Halcon自带没有相关算子可以合成,毕竟默认的字符串显示是外挂在指定位置上的,要合成就要想点办法!
实现效果:
核心原理:
利用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
|