开启左侧

halcon联合C#和画区域问题

[复制链接]
阿友 发表于 2018-8-30 11:11:51 | 显示全部楼层 |阅读模式
在halcon里面,写了个画区域的程序,然后导出,在C#程序里面运行
halcon程序:
  1. dev_open_window (0, 0, 512, 512, 'black', WindowHandle)
  2. draw_rectangle1 (WindowHandle, Row1, Column1, Row2, Column2)
  3. gen_rectangle1 (Rectangle, Row1, Column1, Row2, Column2)
  4. write_region (Rectangle, 'region.hobj')
复制代码

C#程序在图片里面:

C#程序

C#程序

其中,区域变量我设置为全局变量了。
发生的问题:
保存的区域为空的,想不明白。
我的猜想,是不是因为打开的窗口比区域的坐标位置小?还是其他的
希望大家给点看法和解决方案。

Criss 发表于 2018-8-30 12:20:29 | 显示全部楼层
你这个问题可以参考:
HDevelop绘制生成仿射矩形不显示或者异常?详解图像缓存机制 https://www.51halcon.com/thread-1185-1-1.html

另外,请不要随意使用超过4号以上的字体大小!

 楼主| 阿友 发表于 2018-8-30 12:48:34 | 显示全部楼层
51Halcon 发表于 2018-8-30 12:20
你这个问题可以参考:
HDevelop绘制生成仿射矩形不显示或者异常?详解图像缓存机制 https://www.51halcon.com/t ...

这个问题有点像。
不过我看了一下我在C#里保存的区域和在halcon里保存的区域文件大小,差别很大。
我用相机的sdk开发的图像采集,停止采集后,直接在该窗口画区域,然后写入文件的。
绝地武士 发表于 2018-8-30 13:29:59 | 显示全部楼层
阿友 发表于 2018-8-30 12:48
这个问题有点像。
不过我看了一下我在C#里保存的区域和在halcon里保存的区域文件大小,差别很大。
我用相 ...

你保存的区域用halcon读出来是空的(先读取一张图再读取区域)? 如果是那就是创建的时候写错的,否则试试用halcon创建一个区域再到C#里面去加载试试看看,参考上面那个详解肯定可以解决的!
 楼主| 阿友 发表于 2018-8-30 14:02:39 | 显示全部楼层
绝地武士 发表于 2018-8-30 13:29
你保存的区域用halcon读出来是空的(先读取一张图再读取区域)? 如果是那就是创建的时候写错的,否则试 ...

应该是设置系统参数问题,显示图像太大,而系统的宽高参数太小
我用set_system算子设置更大的宽高之后就没问题了。
晚上,加图片试试
深度潜水 发表于 2018-8-30 14:04:02 | 显示全部楼层
或许你应该在程序开始处加上这一行代码:
set_system ('clip_region', 'false')

so easy!
如果解决了问题,请将该答案置顶,分享给需要的人.
Criss 发表于 2018-8-30 16:33:59 | 显示全部楼层
深度潜水 发表于 2018-8-30 14:04
或许你应该在程序开始处加上这一行代码:
set_system ('clip_region', 'false')

楼上这个方法是快速解决方法,你可以在代码加上试试!
 楼主| 阿友 发表于 2018-8-31 16:00:58 | 显示全部楼层
深度潜水 发表于 2018-8-30 14:04
或许你应该在程序开始处加上这一行代码:
set_system ('clip_region', 'false')

我当时就想置顶来着,初来这个论坛,没找到置顶和设为最佳答案,抱歉{:1_313:}
盈腾电子 发表于 2020-7-7 07:12:46 | 显示全部楼层
不错不错,对于初学者很有用的!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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