Halcon自带图片路径
![]()
图片加载
* 1-加载单张图片 read_image (Image, '图路径') * 2-使用list_Image_Files 读取多张图片到元组中 * 参数1 文件夹的路径 * 参数2 筛选的文件的后缀,默认情况下是default,加载图片的所有格式,如果想筛选其他格式例如bmp,写'.bmp' * 参数3 可选参数 * 'file' * 参数4 输出的文件集合 * 找所有的图片格式 list_image_files('路径','default',[],ImageFiles) 案例: list_image_files('C:/Users/renre/Desktop/tupian/3M','default',[],ImageFiles) read_image (Image, ImageFiles[1]) stop () read_image (Image, ImageFiles[2]) 3-使用read_image加载多张图像,把多张图像路径写在元组里面,一个变量保存多张图像时候 read_image(Image2,['图1路径','图2路径']) * 参数1 Image2 输入对象 * 参数2 ObjectSelected 输出对象 * 参数3 索引值从1开始 select_obj(Image2,ObjectSelected,1) dev_display (ObjectSelected) 案例: read_image (Image, ImageFiles) select_obj(Image,ObjectSelected,1) dev_display (ObjectSelected) stop () select_obj(Image,ObjectSelected,2) dev_display (ObjectSelected)
窗体中简单操作
* 打开窗口window1 dev_open_window(0,0,200,200,'green',window1) * 打开窗口window2 dev_open_window(200,200,200,200,'yellow',window2) * close 关闭最后一个窗口 dev_close_window() * 绘制一个圆 draw_circle(window1,Row,Column,Radius) * 显示绘制的区域 gen_circle (Circle,Row,Column,Radius) * 显示圆到别的窗口 * 参数1 指定窗口 * 参数2,3 圆的坐标 * 参数4 半径 disp_circle (window1,Row,Column,Radius) * 获取窗口 dev_get_window(WindowHandle) * 窗口文本的颜色 * 指定窗口绘制文本 * 参数1 窗口对象 * 参数2 字体的大小 * 参数3 字体的类型 * 参数4 是否是粗体 * 参数5 是否是斜体 set_display_font(window1,26,'mono','true','true') * 展示文本 * 参数1 文本内容 * 参数2 window:在窗体上显示文本; Image:在图片上显示文本 * 参数3,4 文本的位置 top , left 左上 * 参数5 字体颜色 * 参数6,7 预留属性的结构 dev_disp_text ('测试','window','center','left','red',[],[])
在窗体上绘制图像
dev_open_window (0, 0, 512, 512, 'black', WindowHandle) read_image (Image, 'printer_chip/printer_chip_01') * 绘制矩形 * row1,Column1, 起始点坐标 * Row2,Column2 坐标点坐标 draw_rectangle1 (WindowHandle, Row1, Column1, Row2, Column2) gen_rectangle1 (Rectangle, Row1, Column1, Row2, Column2) * 仿射矩形 draw_rectangle2 (WindowHandle, Row, Column, Phi, Length1, Length2) gen_rectangle2 (Rectangle1, Row, Column, Phi, Length1, Length2) * 圆形 draw_circle (WindowHandle, Row3, Column3, Radius) gen_circle (Circle, Row3, Column3, Radius) * 椭圆 draw_ellipse (WindowHandle, Row4, Column4, Phi1, Radius1, Radius2) gen_ellipse (Ellipse, Row4, Column4, Phi1, Radius1, Radius2) * 多边形 draw_polygon (PolygonRegion, WindowHandle) * 画区域 draw_region (Region1, WindowHandle) * 画线 draw_line (WindowHandle, Row11, Column11, Row21, Column21) gen_region_line (RegionLines, Row11, Column11, Row21, Column21) *带角度的旋转矩形 * 参数1 绘制出来的旋转矩形 * 参数2、3 绘制起始点坐标 * 参数4 rad(-35.4452),把-35度转成弧度数 1弧度=57.29度 gen_rectangle2 (ROI_0, 83.755, 221.92, rad(-35.4452), 68.509, 24.5699)
窗体显示文本
dev_open_window (0, 0, 512, 512, 'black', 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', [], []) * ['box_color']:通用参数名,表示要设置文本框颜色 *['green']:将文本框背景色设置为绿色 dev_disp_text ('6', 'window', 150, 150, 'black', ['box_color'], ['green']) *['shadow']:通用参数名,控制文本框阴影显示2 *['false']:禁用文本框阴影效果(默认启用) dev_disp_text ('6', 'window', 150, 150, 'black', ['shadow'], ['false']) *['shadow_color','box_color']:同时设置阴影颜色和文本框颜色2 *['yellow','green']:将阴影设为黄色('yellow'),文本框背景设为绿色('green' *dev_disp_text ('6', 'window', 150, 150, 'black', ['shadow_color','box_color'], ['yellow','green'])
缩放图片和获取图片大小
read_image (Image, '图路径') * 缩放图片 zoom_image_factor (Image, ImageZoomed, 0.5, 0.5, 'constant') get_image_size (ImageZoomed, Width, Height)
保存窗口和保存图片
read_image (Image, 'printer_chip/printer_chip_01') dev_open_window (0, 0, 512, 512, 'black', WindowHandle) * 缩放图片 zoom_image_factor (Image, ImageZoomed, 0.5, 0.5, 'constant') get_image_size (ImageZoomed, Width, Height) * 保存窗口 *dump_window (WindowHandle, 'bmp', 'C:/Users/renre/Desktop/12333') * 保存文件 * 参数3 是填充颜色 ,png是背景透明图片 设置其他格式有效0是黑色 255是白色 write_image (ImageZoomed, 'png', 1, 'C:/Users/renre/Desktop/12444')
加载图像划分区域
read_image(Image,'printer_chip/printer_chip_01') * 获取的图片的宽度和高度 get_image_size (Image,width,height) * 根据灰度值进行图像的区域的划分 * 参数1 要划分的图像 * 参数2 划分之后的集合 * 参数3,4 横向、纵向像素之间的距离 * 参数5 灰度值,允许灰度值的差异在6之内 * 参数6 允许输出区域的最小值 regiongrowing(Image,Regions,3,3,6,100) * 获取区域的数量 count_obj(Regions,Number) for Index := 1 to Number by 1 dev_close_window() * 选择集合中的一个对象 select_obj(Regions,ObjectSelected,Index) * 展示划分的区域 dev_display (ObjectSelected) endfor