算子窗口操作

发布于:2025-05-21 ⋅ 阅读:(20) ⋅ 点赞:(0)

抠图 (提取图像感兴趣的区域)


* 使用halcon 抠图


* 窗体属性设设置: 设置窗体绘制图案的模式   magrin边框模式(只有一个边框)  
* fill填充模式(边框内部会有一个遮罩层)
dev_set_draw ('fill')


* 设置颜色
dev_set_color ('green')
* 设置线宽

dev_set_line_width (5)

read_image (Image, 'printer_chip/printer_chip_01')


* 获取当前图像窗口的句柄
dev_get_window (WindowHandle)


*draw_rectangle1() 设置在哪个窗口绘制矩形,以及获取坐标(不会绘制)
*参数1: 窗口的句柄
*参数2: 输出x
*参数3: 输出y
*参数4: 输出x1
*参数5: 输出y1

* halcon中横向的是y轴   纵向的是x轴  行列坐标
draw_rectangle1 (WindowHandle, Row1, Column1, Row2, Column2)


* 根据起点和终点的坐标,在窗体上绘制矩形  生成一个区域类型的变量
gen_rectangle1 (Rectangle, Row1, Column1, Row2, Column2)


* 获取当前区域的 阈值范围
* 设置选择的图像正常显示,其他的区域被黑色遮住
* 参数1: 原始图像
* 参数2: 选择的区域
* 参数3: 生成的新图像
reduce_domain (Image, Rectangle, ImageReduced)


* 根据阈值范围抠图

* 参数1: 需要提起的图像
* 参数2:提取出的新图像
crop_domain (ImageReduced, ImagePart)

halcon 窗体有关的算子【函数】

特点: dev_开头 在Hdevelop 开发工具中有那些窗体

  1. 图像窗口:用于渲染 图片,区域,轮播 视频流等

  2. 变量窗口:用户展示输出变量;图像变量,控制变量

  3. 程序窗口;用于编写图像算法程序

  4. 算子窗口;用于查看算子的参数;输出 输入 类型

  5. 监控窗口;监视元素变化 ,对象类型等


* 窗口有那些操作:

*1.新建窗体
*2.设置窗体中显示的内容
*3.关闭窗体,输出窗体
*4.更新窗体
*5.设置窗体属性: 背景颜色 字体大小 绘制图像
*6.在窗体上绘制图形,显示文本....


test:=[1,2,3,4]

* 打开监视变量的窗体
* 参数1: 需要监视的变量
dev_inspect_ctrl (test)


* 暂停程序
stop()
test[1]:=666

stop()


test[2]:=888


*关闭监视test变量的窗体
dev_close_inspect_ctrl (test)



* 打开一个新的窗体
dev_open_window (0, 0, 600, 600, 'black', aaa)
dev_open_window (0, 0, 500, 500, 'yellow', bbb)
dev_open_window (0, 0, 400, 400, 'green', ccc)

*关闭窗体  默认关闭最后一个窗体
* dev_open 打开窗体 放到集合中    dev_close 是从集合的尾部删除元素
dev_close_window ()


*设置窗体的属性 ,设置的是最后打开的图像窗体上的属性
dev_set_color ('red')
dev_set_draw ('margin')
dev_set_line_width (10)
*设置错误的显示方式
dev_set_check ('~give_error')




* 绘制圆形
*参数1: 在哪个窗口中绘制
*参数2参数3圆心的坐标
* 参数4 :半径
draw_circle (bbb, Row, Column, Radius)

*绘制圆形  
* 参数1: 绘制出来的圆形
* 参数2参数3: 需要绘制的圆的圆心坐标
* 参数4:半径
gen_circle (Circle, Row, Column, Radius)


dev_get_window (WindowHandle)


draw_circle (WindowHandle, Row1, Column1, Radius1)

gen_circle (Circle1, Row1, Column1, Radius1)


* disp 是display 的 简称  表示  显示


* 参数1: 在哪个窗体显示
* 参数2,参数3: 显示的圆心坐标
* 参数4: 半径
disp_circle (WindowHandle, Row1, Column1, Radius1)



* 注意:当开启多个图形窗口的时候,很多操作都要注意先后顺序
     * 很多算子,都是在最后打开的窗体中操作的

加载图像划分区域


*使用工具生成代码
*图形窗口   -->绘制新的ROI  -->选择要绘制的形状   ---> 工具--->插入代码
gen_rectangle1 (ROI_0, 143.754, 108.459, 218.251, 281.718)

stop()

dev_clear_window ()

read_image (Image, 'printer_chip/printer_chip_01')


* 获取图像高度和宽度
get_image_size (Image, Width, Height)



* 根据像素之间的灰度值将图像划分成n个区域
* 参数1:输入图像
* 参数2:输出区域的集合
* 参数3:横向像素之间的距离
* 参数4:纵向像素之间的距离
* 参数5:  灰度值
* 参数6: 输出区域的最小面积
regiongrowing (Image, Regions, 3, 3, 6, 100)
* 获取区域的总数量
count_obj (Regions, Number)


for Index := 1 to Number by 1
    dev_clear_window()
    * 从集合中获取某个对象
    select_obj (Regions, ObjectSelected, Index)
    dev_display (ObjectSelected)
endfor

 生成网格图像

* 生成网格图片 类型是图像类型
gen_image_squared_paper (ImageSquaredPaper)

 

窗体文本标记

文本标记流程

  1. 创建描述文字的变量

  2. 设置窗体上显示文字的,种类,大小 ,颜色,以及哪个窗体的属性

  3. 将文字显示到窗体上

  4. 显示在哪个窗体,哪个位置上,生么字体,大小多啊后,背景颜色,字体颜色,盒子阴影...等属性

  5. 文字既可以在窗体上,也可以在图片,标记。



* 初始化
dev_close_window ()

dev_get_window (WindowHandle)


*设置某个窗体上文本显示的带大小   字体类型  是否粗体
*参数1: 窗体的句柄
*参数2:字体大小
*参数3:字体类型
*参数4:是否为粗体
*参数5:是否为斜体
set_display_font (WindowHandle, 16, 'sans', 'true', 'false')


* 在图像窗口上显示文本
*参数1:需要显示的文本内容
*参数2: window 表示在窗体上显示文字  Image表示在图像上显示文字
* 参数3参数4 显示的位置  top left 左上角  
*  top 上   bottom 下   left 左  right 右 center 中间
dev_disp_text ('吴亦凡1', 'window', 'top', 'left', 'black', [], [])

dev_disp_text ('吴亦凡2', 'window', 'center', 'center', 'black', [], [])

dev_disp_text ('吴亦凡3', 'window', 'bottom', 'right', 'black', [], [])


* 设置显示到某一个坐标位置
dev_disp_text ('吴亦凡4', 'window', 100, 100, 'black', [], [])

*  参数5 字体颜色
dev_disp_text ('吴亦凡5', 'window', 100, 100, 'red', [], [])


* 
dev_disp_text ('吴亦凡6', 'window', 150, 150, 'black', ['box_color'], ['green'])
dev_disp_text ('吴亦凡6', 'window', 150, 150, 'black', ['shadow'], ['false'])


dev_disp_text ('吴亦凡6', 'window', 150, 150, 'black', ['shadow_color','box_color'], ['yellow','green'])


https://blog.csdn.net/chenai886/article/details/145136736



 关于算子详细的窗体操作:

HALCON 【窗体操作】 dev_disp_text_halcon disptext-CSDN博客


网站公告

今日签到

点亮在社区的每一天
去签到