Halcon 学习笔记一 电脑版发表于:2024/4/25 15:14 ![](https://img.tnblog.net/arcimg/hb/0cebbc624ef24f6582d16debf7db6b30.png) >#Halcon 学习笔记一 [TOC] Halcon学习笔记一 ------------ | 算子 | 描述 | | ------------ | ------------ | |`dev_`|系统、窗口相关算子| |`read_`|与读相关算子基本都是read开始| |`write_`|与写相关的算子 |`draw_`| 在窗口上画图,画区域使用该前缀的算子 | |`gen_`|表示生成类的算子| |`get_`|表示获取类的算子| |`set_`|设置参数类的算子| |`region_`| 表示与区域相关操作的算子| |`tuple_`|与数组操作类相关的算子| |`select_`|筛选类型的算子| |`hom_`|与仿射变换矩阵相关的算子| |`reduce_`|在原图中只显示筛选的区域| |`crop_`|在原图中只显示筛选的区域部分扣出来| ```bash ** 快速使用Halcon实现图像抠图操作 ** 窗口属性设置 dev_set_draw ('margin') dev_set_color ('green') dev_set_line_width(3) ** 获取图像当前显示的窗口句柄 dev_get_window(WindowHandler) ** 读取图像 将'printer_chip/printer_chip_01'赋值给Image read_image(Image, 'printer_chip/printer_chip_01') ** 绘制抠图区 draw_rectangle1(WindowHandler,Row1,Column1,Row2,Column2) ** 根据绘制的行列左边生成对应矩形区域 gen_rectangle1(Rectangle, Row1, Column1, Row2, Column2) ** 获取当前区域的阈范围 reduce_domain(Image,Rectangle,ImageReduced) ** 扣出显示的二维码图像 crop_domain(ImageReduced,ImagePart) ``` tn2>执行到`draw_rectangle1`这里的时候需要圈一个图出来。 ![](https://img.tnblog.net/arcimg/hb/c7af0ffceb5c4a609d87043cd0b78bf6.png) ```bash ** 清理窗口 ** dev_update_window ('off') ** dev_update_window ('on') ** 关闭窗口的图像更新 dev_update_off() ** 开启窗口图像的自动更新 * dev_update_on() dev_clear_window() ** 打开新窗口 dev_open_window (0, 0, 512, 512, 'black', WindowHandle) ** 设置窗口的属性 ** 设置颜色 dev_set_color ('green') dev_set_colored (12) ** 设置填充模式 dev_set_draw ('margin') ** 设置线宽 dev_set_line_width (3) ** 设置窗体显示的字体大小 set_display_font (WindowHandle, 32, 'mono', 'true', 'false') read_image (Image, 'printer_chip/printer_chip_01') ** 图像到新窗口 dev_display (Image) ** 显示文本 dev_disp_text ('Helcon窗口相关操作的算子', 'window', 'top', 'left', 'lime green', ['box'], ['false']) ** 显示继续 disp_continue_message (WindowHandle, 'black', 'true') ** 提示文字 write_string (WindowHandle, 'hello') ** 将窗口的内容截图为一张图像 dump_window_image (Image1, WindowHandle) *while (1) ** 获取鼠标点击按钮的索引值 get_mbutton (WindowHandle, Row, Column, ButtonIndex) disp_message(WindowHandle, '按下鼠标索引为'+ButtonIndex, 'window', 100,150, 'green', 'true') *endwhile ** 在窗口上显示十字叉,箭头 disp_cross (WindowHandle, 300, 300, 100, 0) disp_arrow (WindowHandle, 300, 300, 300, 500, 10) ``` ![](https://img.tnblog.net/arcimg/hb/c013056d0edd4ed2bad7247389bc4b19.png)